细胞变化应用于多个细胞

时间:2015-01-07 06:13:19

标签: 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(indexPath) as FeedPageTableViewCell

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

}

问题在于,虽然它可以在我点击的单元格上运行,但它也适用于每行5行以下的每个单元格。

2 个答案:

答案 0 :(得分:1)

通过从UITableViewCell那样检索UITableView来更新let cell = tableView.cellForRowAtIndexPath(indexPath) as FeedPageTableViewCell cell.upVote.setImage("green", forState: .Normal) 是不合适的。我不认为这符合你的期望:

upvote

相反,您应该拥有一些您保持最新的实例数据数组。在这种情况下,您可能有一个布尔数组,其中索引是行,值是否是" upvoted"。然后在{{1}}函数中,您将更新布尔值并重新加载表/单元格以呈现相应的数据。

答案 1 :(得分:0)

将目标添加到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上会给出正确的索引路径,请尝试,如果没有,请告诉我。