识别按下按钮的行

时间:2012-08-06 00:31:34

标签: objective-c uitableview

每个'btn1'调用相同的方法。

Example
PS:这是UITableView

我想知道如何从按下按钮的哪一行获取。我尝试在每个按钮上做一个循环,按钮标记与上一个按钮的标记不同:

// Handle the buttons tag
int tagCount = 100;

// mainArray is the array of the tableView
for (int i = 0; i < [self.mainArray count]; i++) {
    // I created a NSIndexPath to access the tableView cells
    NSIndexPath *nowIndex = [NSIndexPath indexPathForRow:i inSection:0];
    UITableViewCell *cell = (UITableViewCell *)[(UITableView *)self.view cellForRowAtIndexPath:nowIndex];

    // I set the button tag as the 'int';
    UIButton *shareButton = (UIButton *)[cell viewWithTag:100];
    [shareButton setTag:tagCount];

    tagCount++;
}

但标签仍然等于100;

任何解决方案?

2 个答案:

答案 0 :(得分:1)

如果按钮是UIButton个实例,则设置标签属性(可能是行号)。在事件方法中,您可以测试标记属性以查看按下了哪个按钮。

答案 1 :(得分:1)

您可以将UIButton实例替换为UIImageView,并使用常规和可选的突出显示图像,并将其设置为表格视图单元格accessoryView。然后实施UITableViewDelegate的{​​{1}}方法。这样,您就不必处理标签或存储对按钮的引用。如果您不需要任何UIButton交互(如选定状态或其他手势),则此方法应该足够。