2012-07-17 89 views

回答

1

我会把一个标签属性。假设左边的标签为1,右边的标签为2. 所有UIView都有一个标签属性,它只是一个整数值。

@property (nonatomic) NSInteger tag; 

然后,当你收到一个按钮,水龙头,你可以问按钮的标签是什么 - 1或2,你就会知道这是哪个按钮。

如果你想知道按钮属于哪个索引路径,如果你把它放在单元格的内容视图上,你可以抓住按钮的超级视图(应该是单元格)或按钮的超级视图的超级视图):

UITableViewCell *cell = (UITableViewCell *)[button superview]; 
NSIndexPath *pathForSelectedButton = [tableView indexPathForCell:cell]; 

请注意,上面的代码假定按钮直接放置在单元上。

+0

这听起来不错,我会尽力的时候了。谢谢 – jAckOdE 2012-07-17 01:06:36

1

UIButton有一个标签属性。如果只有一个部分,您可以为每个按钮设置一个唯一值,例如indexPath.row * 2和indexPath.row * 2 + 1。

然后你可以为每个按钮添加目标方法。

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside] 

最后,实现buttonPressed方法类似

- (void)buttonPressed:(UIButton *)sender { 
    NSInteger tag = sender.tag; 
    // your code here. 
} 
+0

感谢您的快速回复! indexPath不是一个数字,所以我想你要说的是从IndexPath中的节和索引值中创建一个唯一的标记号。我对么?如果是这样的话,由于一节中的行数可能是多种多样的,因此在一般情况下提出一个公式来制作唯一标签号并不是一件简单的事情。 – jAckOdE 2012-07-17 00:57:30

+1

对不起,错误。我手上没有我的MacBook。如果只有一个部分,可以使用indexPath.row。对于多个部分可能会更棘手。但我相信有几种方法可以做到这一点。例如,如果没有部分的行数超过1000行,则可以使用类似indexPath.section * 1000 + indexPath.row的内容。 – Selkie 2012-07-17 01:44:35

相关问题