UITableView中的两个可点击项

时间:2015-03-02 15:54:44

标签: ios objective-c uitableview

我有一个UITableview作为联系人列表,其中有很多用户。它有一个缩略图照片和每行的配置文件详细信息。我想让它像点击缩略图一样,它会转到另一页照片,当点击其余空间时,它会转到其他地方。通过使用表视图委托,我知道单击了哪一行并将数据传递给新的ViewController,例如用户ID。但是,如果点击缩略图,我可以知道哪一行吗?

我正在使用标签从单元格中查找视图,例如

    UIImageView *thumbnailView = (UIImageView *) [cell viewWithTag:1];

我想我不能用标签标记行索引。

5 个答案:

答案 0 :(得分:0)

您可以向缩略图添加手势并在其上获取事件。需要根据indexPath.row为拇指图像设置标记。

答案 1 :(得分:0)

在单元格数据源方法(cellForRowIndexPath :)中添加以下代码:

cell.YOURIMGVIEW.userInteractionEnabled = YES;
cell.YOURIMGVIEW.tag = indexPath.row;

UITapGestureRecognizer *clickable = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageClicked:)];
clickable.numberOfTapsRequired = 1;
[cell.YOURIMGVIEW addGestureRecognizer:clickable];   
[clickable release];

并且也使用以下方法:

-(void)imageClicked:(id)sender
{
      UITapGestureRecognizer *gesture = (UITapGestureRecognizer *) sender;
      NSLog(@"image tag is = %d", gesture.view.tag);
      ////////
      You custome come goes Here !!!!!!!!!!!!!!
      ///////
}

答案 2 :(得分:0)

您可以将照片用作配件视图。或者使用带有照片的UIButton作为背景并相应地设置动作。 (例如,在视图控制器上调用一个方法然后执行push或segue。这样做你必须将一些数据传递给视图控制器,指示实际点击了哪一行。可以使用行数或者你可以设置带有一些数字id的按钮的标签。)

答案 3 :(得分:0)

走简单的路,因为艰难的做法不会给你总统奖,对吗?

而不是UIImageViewUIButton并在UIButton实例上设置图片。

将Button标记设置为indexPath.row,这样当您检索它时,您就知道单击了哪一行。你也可以用其他方式对它进行排序,但它似乎很安静。

Add targe进入自定义功能的按钮。 [btnObj addTarget ......]

tyepcast您发送给UIButton并收到tag(indexpath.row)

答案 4 :(得分:0)

您可以删除tableviewcell中的所有手势识别器和按钮,在控制器中,您可以实现以下代理;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 

要触发此方法,您需要将tableview委托设置为您的控制器,可以通过以下代码或使用情节提要。

- (void)viewDidLoad {
    self.tableview.delegate = self;
}

通过执行此操作,您在单元格中单击的项目无关紧要,将始终调用委托方法。

我希望这会有所帮助。