【发布时间】:2015-10-22 14:21:29
【问题描述】:
我直接在storyboard中创建了一个TableView;此 tableView 在 4 部分中包含 8 个静态单元格(基本样式);现在,我如何通过代码编辑这些单元格?例如用于更改 textLabel、backgroundColor、分隔符 ecc 我尝试为每个 cel 设置一个标识符,但没有成功...
【问题讨论】:
我直接在storyboard中创建了一个TableView;此 tableView 在 4 部分中包含 8 个静态单元格(基本样式);现在,我如何通过代码编辑这些单元格?例如用于更改 textLabel、backgroundColor、分隔符 ecc 我尝试为每个 cel 设置一个标识符,但没有成功...
【问题讨论】:
对于在情节提要中创建的静态单元格,您只需将要编辑的元素设置为IBOutlet,方法是从情节提要中按住 ctrl 并拖动到相应的视图控制器,最终得到如下内容:
class MyViewController: UIViewController {
@IBOutlet weak var cell1: UITableViewCell!
@IBOutlet weak var cell2: UITableViewCell!
}
然后您可以使用cell1.textLabel 等访问基本视图中的内置元素。
查看the documentation 关于设置IBOutlets。
要更改背景颜色,您可以直接在情节提要 UI 中进行更改,也可以访问 backgroundColor 属性。您可能想阅读UITableViewCell Class Reference。
【讨论】:
nameOfYourCell.backgroundColor = UIColor.redColor()
UITableViewDataSource 方法。如果您要更改单元格的所有属性,包括标签、图像、单元格背景颜色等,那么您的单元格对我来说听起来不是很“静态”。无论如何,我认为你应该接受 p4sh4 的回答:你可能不喜欢这个答案,但它是正确的。
感谢 p4sh4 的 @IBOutlet 建议。 但是,您应该尝试“Outlet Collection”,而不是多个 Outlets。
@IBOutlet var tableLabelCollection: [UILabel]!
override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
print("accessory Button Tapped: \(indexPath.row) => \(tableLabelCollection[indexPath.row].text)")
}
【讨论】: