我怎么知道哪个tableViewCell包含被单击的按钮? [重复]

问题描述 投票:0回答:6

可能重复:How to know the UITableview row number

我在这个tableView上有一个tableView和tableViewCell。我为tableViewCell定义了另一个类,称为CustomCell,以便对必需的自定义进行编码,并在此单元格上创建一个按钮。单击tableViewCell上的按钮时,我想了解哪个tableViewCell包含该按钮,以便仅对该单元格(包含单击的按钮)进行必要的更改]

我如何理解哪个tableViewCell包含被单击的按钮?

iphone objective-c uitableview uibutton
6个回答
0
投票

实现此目的的一种策略是将带有行号的标签分配给按下的按钮:

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexpath {
    YourCustomCell *cell = // Code
    cell.button.tag = indexPath.row;

    // Other cell preparation code

    return cell;
}

然后,在按钮的操作中,您可以看到其标签是什么以确定与之对应的模型对象:

- (void)didSelectButton:(id)sender {
    UIButton *button = sender;
    NSInteger tag = button.tag;

    YourModelObject *item = self.items[tag];

    //    Continue with the business logic for what should
    //    happen when that button is pressed.
}

0
投票

如果将附件详细信息按钮替换为自定义按钮,则可以调用annexantButtonTappedForRowWithIndexPath:方法。

示例-将其放在cellForRowAtIndexPath中(设置单元格时:)>]

UIButton *myAccessoryButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 125, 24)];
[myAccessoryButton setImage:[UIImage imageNamed:@"yourImage.png"] forState:UIControlStateNormal];
[cell setAccessoryView:myAccessoryButton];
[myAccessoryButton release];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;

然后作为单独的方法:

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:    (NSIndexPath *)indexPath
{
    //do something
}

0
投票

怎么样...


0
投票

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


0
投票

尝试一下,您可以知道在此方法中单击的单元格的节和行号:-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {}


0
投票

您需要以这种方式调用此cellForRowAtIndexPath方法。

© www.soinside.com 2019 - 2024. All rights reserved.