我一直在tableview
工作,并且遇到了以下问题。
据我所知,willDisplayCell
委托方法应该允许我访问当前的单元格设计。
我的问题是 - 我无法访问自定义单元格的实例,因为它是在cellForRowAtIndexPath
方法中单独声明的。如果我再次声明它 - 我无法访问它的对象(我有一个uibutton
)。或者我可能误解了这种方法的用法。
这是我的代码
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
//declaring the cell variable again
var cell:TblCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! TblCell
if let text = cell.lblCarName.text where !text.isEmpty {
cell.act1.hidden = false
} else {
println("Failed")
}
}
我在代码中看到的目标是访问TblCell uilabel
并对其应用条件 - 如果其为零 - 则显示uibutton
。
注意:我的委托和数据源设置正确,方法正在运行,应用程序编译,但条件不能正常工作。
谢谢!
答案 0 :(得分:6)
此委托为您提供现在将显示的单元格的实例,并且实际将该特定单元格作为cell
参数发送。选择它并使用条件。
请尝试使用此代码。
var cell:TblCell = cell as! TblCell
if let text = cell.lblCarName.text where !text.isEmpty {
cell.act1.hidden = false
} else {
println("Failed")
}
答案 1 :(得分:2)
我认为更好的方法是:
guard let cell = cell as? TblCell else { return }
在willDisplayCell里面