在选择时更改UITableViewCell布局

时间:2013-03-04 11:01:14

标签: iphone ios objective-c uitableview

我有tableview,其中单元格使用right detail layout。我现在想做的是当用户选择一个单元格时。我应该在那个单元格中添加一个图像吗?

我应该如何实现这个?

亲切的问候

4 个答案:

答案 0 :(得分:1)

您可以在-tableView:didSelectForRowAtIndexPath:中执行此操作,即当用户选择您可以创建图像视图并添加它时

答案 1 :(得分:0)

您尚未详细说明图片的保留位置。

如果您的图片位于缓存目录,那么您应该像这样编写-didSelectRowAtIndexPath ...

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
UIImage *image = [[UIImage alloc] initWithContentsOfFile:[[paths lastObject] stringByAppendingPathComponent:[NSString stringWithFormat:@"Image-%d.png",indexPath.row]]];
yourImageView = [[UIImageView alloc] initWithImage:image];
[cell addSubView;yourImageView];

如果您从服务器下载图片,那么您的代码应如下所示:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://yourURL.com"]]]; 
UIImage *image = [[UIImage alloc] initWithData:data];
yourImageView = [[UIImageView alloc] initWithImage:image];
[cell addSubView;yourImageView];

GoodLuck ...... !!!

答案 2 :(得分:0)

尝试实施此

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.imageView.image = [UIImage imageNamed:@"imageName"];
}

答案 3 :(得分:0)

您可以创建UITableViewCell的子类。 然后实现方法-touchBegin,并且需要