Uitableview 应用于多个单元格的单元格更改

Uitableview 应用于多个单元格的单元格更改,uitableview,swift,Uitableview,Swift,当用户单击我的tableView单元格内的按钮时,我希望它更改单元格的多个属性。我将indexPath.row值作为标记值分配给不同类中的每个单元格。这是我的密码: @IBAction func upvote(sender: AnyObject) { let row = sender.tag let indexPath = NSIndexPath(forRom: row, in Section: 0) let cell = tableView.cellForRowAtIndexPath(ind

当用户单击我的tableView单元格内的按钮时,我希望它更改单元格的多个属性。我将indexPath.row值作为标记值分配给不同类中的每个单元格。这是我的密码:

@IBAction func upvote(sender: AnyObject) {

let row = sender.tag
let indexPath = NSIndexPath(forRom: row, in Section: 0)
let cell = tableView.cellForRowAtIndexPath(indexPath) as FeedPageTableViewCell

cell.upVote.setImage("green", forState: .Normal)

}

问题是,虽然它在我单击的单元格上工作,但它也适用于下面5行的每个单元格。

这样从
UITableView
检索来更新
UITableViewCell
是不合适的。我不认为这符合你的期望:

let cell = tableView.cellForRowAtIndexPath(indexPath) as FeedPageTableViewCell
cell.upVote.setImage("green", forState: .Normal)

相反,您应该有一些保持最新的数据实例数组。在这种情况下,您可能有一个布尔数组,其中索引是行,值是是否“向上投票”。然后,在
upvote
函数中,您将更新布尔值并重新加载表/单元格以呈现适当的数据。

将目标添加到UIButton,将此方法用于操作按钮

-(void)handeltap:(UIButton*)sender{

CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
NSUInteger lastIndex = [indexPath indexAtPosition:[indexPath length] - 1];
}


在lastIndex上,将给出正确的索引路径,请尝试,如果没有,请告诉我。

为什么不使用表视图委托方法didSelectRowAtIndexPath。它会给你一个精确的单元格,你可以改变它的行为。我选择的是单元格内的一个按钮,而不是单元格本身。我将如何使用DidSelectRowatineXpath进行iAction?这里更多地支持我的回答,以及一条描述与您所经历的类似问题的评论,您能用swift编写吗?谢谢@克里斯·琼斯:对不起,伙计。没时间了。只需更改语法即可。不复杂。仍将更改应用于多个单元格:(.有其他想法吗?在CellForRowatinex中..将if条件置于检查状态。if条件置于检查状态是什么?