我很困惑。
在我的cellForRowAtIndexPath方法中,我正在尝试设置UIButton标题:
不工作:
cell?.react?.setTitle("\(currentObject.likes)", forState: UIControlState.Normal)
其中react
是UIButton,这是我的UITableViewCell子类的子视图。
我似乎无法更新我的UIButton的标题。我发现修改它的唯一方法是通过我的UITableViewCell子类中的UITapGestureRecognizer,
工作:
func reaction(button : UIButton) {
if button.imageView?.image == UIImage(named: "ic_favorite.png") {
button.setImage(UIImage(named: "ic_favorite_border.png"), forState: UIControlState.Normal)
} else {
button.setImage(UIImage(named: "ic_favorite.png"), forState: UIControlState.Normal)
}
}
答案 0 :(得分:0)
创建一个自定义单元格(比如myCell),将该按钮添加为@IBOutlet,然后键入此let cell = tableView.dequeueReusableCellWithIdentifier("yourIdentifier", forIndexPath: indexPath) as! myCell
。
我认为您的问题是您没有将按钮链接到手机和手机。 XCode不知道你在说什么按钮。
答案 1 :(得分:0)
您应首先获得对您的单元格的引用,并将cellForRowAtIndexPath
传递给您的方法。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MyCellIdentifier", forIndexPath: indexPath) as! UIButton
// do anything with cell
return cell
}
请记住为表格查看单元格设置标识符(UITableViewCell
)。
答案 2 :(得分:0)
//尝试这样,首先在表格单元格中为该按钮添加标签
(cell?.contentView.viewWithTag(tag) as? UIButton)?.setTitle("\(currentObject.likes)", forState: UIControlState.Normal)