tableview单元如何响应触摸事件? (苹果手机)

时间:2011-08-08 12:44:59

标签: iphone uitableview

我有一个UITableView,其中包含大约100个单元格,每个单元格包含一些文本内容,或包含图片,或两者兼而有之。当点击图片时,我想调用presentModalViewController来显示来自远程服务器的大图片。

如何设法实现此功能?有什么建议吗?

3 个答案:

答案 0 :(得分:1)

如果您只想在点击图片时执行操作(并且行中没有其他元素),则应使用UIButton显示图像并使用UIButton的常规触摸事件处理来执行任务。 / p>

如果你在点击行中的任何内容时发生的操作很好,你应该检查UITableViewDelegate的tableView: didSelectRowAtIndexPath:方法。

答案 1 :(得分:1)

只需实现[UITableView tableView:didSelectRowAtIndexPath:]方法并展示您的viewController。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  /*
   * get your object (myImagePath) here using:
   *  section: indexPath.section
   *  row: indexPath.row
   */


   MyViewController *viewController = [[MyViewController alloc] init];
   [viewController setImageWithPath:myImagePath]; // I suppose that your viewController has a method to set the image.

   [self presentModalViewController:viewController animated:YES];

   [viewController release];      
}

答案 2 :(得分:0)

 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath   
 {   
  YourController *objController = [[YourController alloc]         initWithNibName:@"YourController" bundle:nil];      
NSString *arrayElement = [yourArray objectAtIndex:indexPath.row];  
[self.navigationController pushViewController:objController animated:YES];  
[objController release];  

}