我在UITableViewCell中有3个UILabel,当我尝试更新单元格并且没有正确更新时,它会导致我出现问题。我希望能够从单元格中删除所有子视图,然后创建新的UILabel,然后这应该工作。如何从单元格中删除所有子视图?
对不起,如果有一个广泛的问题,但不知道从哪里开始。
答案 0 :(得分:6)
你在找这样的东西吗?
for view in yourTableViewCell?.subviews as! [UIView]{
if let label = view as? UILabel {
label.removeFromSuperview()
}
}
答案 1 :(得分:0)
如果您将UITableViewCell子类化,那么您可以将插件(在自定义UITableViewCell类中)添加到其中的子视图中。当调用下面的方法时,您可以更新它的标签并使用它的条件:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:CustomUITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as CustomUITableViewCell
cell.textLabel?.text = self.items[indexPath.row]
return cell
}
答案 2 :(得分:0)
您转到File-> New->文件,选择iOS-> Source-> cocoatouch类,并在类中:CustomTableViewCell,子类:UITableViewCell(从下拉菜单中选择)。
https://www.dropbox.com/s/17mzkrtgnwdophq/Screen%20Shot%202015-07-09%20at%204.06.50%20PM.png?dl=0
创建自定义单元格类后:
在故事板中选择tableview中的原型单元格,在身份检查器中,您必须将其类设置为CustomUITableViewCell
https://www.dropbox.com/home?preview=Screen+Shot+2015-07-09+at+4.07.04+PM.png
你添加这样的插座,你可以参考,就像我在上一个答案中所做的那样!
class CustomTableViewCell : UITableViewCell {
@IBOutlet var backgroundImage: UIImageView
@IBOutlet var titleLabel: UILabel
}
希望这有帮助!
答案 3 :(得分:0)
这是swift的快速解决方案:
b_mat