Select TableView 部分中的单元格
Select cell in TableView Section
我一直在寻找有关如何执行此操作的答案,但似乎没有什么是直截了当的,或者用户想要做一些不同的事情(例如选择多个单元格)。
背景:
我正在制作一个应用程序,每天为不同的职业(如阅读、园艺、运动)检索报价。我有一个带有 3 个选项卡的 UITabBarController。
第一个选项卡 = 报价单;第二个选项卡 = 类别;第三个选项卡 = 设置 *
“设置”选项卡是一个包含 3 个部分的 UITableView,每个部分有 2 个单元格。
问题:我想让每个单元格去不同的目的地。第一部分中的第一个单元格只是一个带有滑块的视图控制器(用于更改文本颜色的颜色滑块)(稍后会介绍)。我怎样才能做到这一点?
import UIKit
class settingsTab: UIViewController, UITableViewDelegate {
struct Objects {
var sectionName : String!
var sectionObjects : [String]!
}
var objectsArray = [Objects]()
override func viewDidLoad() {
super.viewDidLoad()
objectsArray = [Objects(sectionName: "Options", sectionObjects: ["Change color of text" , "Notifications"]),Objects(sectionName: "Extras", sectionObjects: ["Remove ads" , "Restore purchases"]),Objects(sectionName: "Support", sectionObjects: ["Rate this app" , "Email developer"]), Objects(sectionName: "Jordan Norris - Quote Daily 2016", sectionObjects: [])]
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell!
cell.textLabel?.text = objectsArray[indexPath.section].sectionObjects[indexPath.row]
cell.backgroundColor = UIColor.cyanColor()
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return objectsArray[section].sectionObjects.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return objectsArray.count
}
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?{
return objectsArray[section].sectionName
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
}
}
这里是settingsTab.swift,TableViewController建立的地方。如果您需要更多信息,请评论您想要添加的内容,我会立即编辑 post。提前致谢!
栏目和栏目中的项目数量会改变吗?如果没有,创建静态单元格并将每个单元格的 segue 连接到不同的目的地可以在没有代码的情况下完成(全部在 Interface Builder 中)。
您可以使用 indexPath.section
和 indexPath.row
通过最后一个函数 didSelectRowAtIndexPath
访问每个部分和每一行。例如,如果你想访问第二部分和第一行,你可以做
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("Section \(indexPath.section), Row : \(indexPath.row)")
if indexPath.section == 1 && indexPath.row == 0{
//Code to implement View Controller to remove adds
print("Remove Adds")
}
}
尝试选择每一行以显示打印的部分和行。
我一直在寻找有关如何执行此操作的答案,但似乎没有什么是直截了当的,或者用户想要做一些不同的事情(例如选择多个单元格)。
背景:
我正在制作一个应用程序,每天为不同的职业(如阅读、园艺、运动)检索报价。我有一个带有 3 个选项卡的 UITabBarController。
第一个选项卡 = 报价单;第二个选项卡 = 类别;第三个选项卡 = 设置 *
“设置”选项卡是一个包含 3 个部分的 UITableView,每个部分有 2 个单元格。
问题:我想让每个单元格去不同的目的地。第一部分中的第一个单元格只是一个带有滑块的视图控制器(用于更改文本颜色的颜色滑块)(稍后会介绍)。我怎样才能做到这一点?
import UIKit
class settingsTab: UIViewController, UITableViewDelegate {
struct Objects {
var sectionName : String!
var sectionObjects : [String]!
}
var objectsArray = [Objects]()
override func viewDidLoad() {
super.viewDidLoad()
objectsArray = [Objects(sectionName: "Options", sectionObjects: ["Change color of text" , "Notifications"]),Objects(sectionName: "Extras", sectionObjects: ["Remove ads" , "Restore purchases"]),Objects(sectionName: "Support", sectionObjects: ["Rate this app" , "Email developer"]), Objects(sectionName: "Jordan Norris - Quote Daily 2016", sectionObjects: [])]
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell!
cell.textLabel?.text = objectsArray[indexPath.section].sectionObjects[indexPath.row]
cell.backgroundColor = UIColor.cyanColor()
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return objectsArray[section].sectionObjects.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return objectsArray.count
}
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?{
return objectsArray[section].sectionName
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
}
}
这里是settingsTab.swift,TableViewController建立的地方。如果您需要更多信息,请评论您想要添加的内容,我会立即编辑 post。提前致谢!
栏目和栏目中的项目数量会改变吗?如果没有,创建静态单元格并将每个单元格的 segue 连接到不同的目的地可以在没有代码的情况下完成(全部在 Interface Builder 中)。
您可以使用 indexPath.section
和 indexPath.row
通过最后一个函数 didSelectRowAtIndexPath
访问每个部分和每一行。例如,如果你想访问第二部分和第一行,你可以做
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("Section \(indexPath.section), Row : \(indexPath.row)")
if indexPath.section == 1 && indexPath.row == 0{
//Code to implement View Controller to remove adds
print("Remove Adds")
}
}
尝试选择每一行以显示打印的部分和行。