我正在尝试构建一个内置不同按钮的自定义单元格,但是当我点击单元格中的“关注按钮”并为此按钮着色时,似乎其他跟随按钮也会获得颜色...另外如果我向上滚动在我的桌子上查看其他按钮随机获取颜色...我还在学习如何使用自定义单元格...
这里有我的自定义单元格
class customCell: UITableViewCell
{
@IBOutlet weak var follow: UIButton!
@IBOutlet var comment: UIButton?
@IBOutlet var share: UIButton?
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cellPost = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! customCell
cellPost.tag = Array(postToPrint.keys)[indexPath.row]
cellPost.follow?.tag = Array(postToPrint.keys)[indexPath.row]
cellPost.follow?.addTarget(self, action: "follow:", forControlEvents: .TouchUpInside)
return cellaPost
}
}
这里有我的功能跟随
func follow(sender: UIButton)
{
let postSelected = sender.tag
// In order to get indexPath from int values
let indexPath = NSIndexPath(forRow: postSelected, inSection: 1)
let cell = table.cellForRowAtIndexPath(indexPath) as! customCell
cell.follow.setTitleColor(UIColor.redColor(), forState: UIControlState)
idPostClicked = postSelected
sendHttpRequest(postClicked : idPostClicked)
}
我将字典键作为标记给每个单元格。后来我想把cell.tag作为参数发送到sendHttpRequest方法。如果我将我的按钮功能放在我的customCell中,我想获得有我的followButton的单元格,这样我就可以发送一个带有cell.tag的请求。 但是,当我只点击一个...时,文本会在其他单元格中变色:/
答案 0 :(得分:0)
func follow
移动到单元格本身。 tableView没有理由处理这个逻辑,因为它是想要更改它自己可以访问的元素的单元格。此外,如果您将逻辑移动到单元格中,则不需要tags
或添加目标等。
class customCell: UITableViewCell
{
@IBOutlet weak var follow: UIButton!
@IBOutlet var comment: UIButton?
@IBOutlet var share: UIButton?
// Connect the follow button to this function as an action
@IBAction followPressed(sender: UIButton) {
follow.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellPost = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! customCell
return cellaPost
}
我相信这应该可以解决问题。
为按钮添加了UIControlState
的一些缺失代码。如果这不起作用,您可以上传示例项目吗?很难确定你只想用这段代码做什么。