【问题标题】:Difficulty changing the size of image in UITableViewCell难以在 UITableViewCell 中更改图像的大小
【发布时间】:2013-12-22 02:09:45
【问题描述】:

问题: 我在方法cellForRowAtIndexPath 中使用以下代码来设置单元格的图像大小,但在运行时图像会被放大到表格行允许的最大高度和宽度。

UIImage *_image = [imageDictionary objectForKey:@"image"]; // Get image data
[_image drawInRect:CGRectMake(0,0,50,50)]; // set size
[cell.imageView setImage: _image]; // assign image to cell
cell.imageView.frame = CGRectMake(cell.imageView.frame.origin.x,cell.imageView.frame.origin.y,50,50);

return cell;

问题:有没有更稳健的方法来控制 UITableViewCell 中图像的大小?我采用的方法来自其他几篇文章,但由于某种原因,它在我的代码中被忽略了。

旁注:我正在使用 Xcode 5 并在 iOS 7 平台上进行开发。

【问题讨论】:

    标签: ios iphone objective-c uitableview uiimageview


    【解决方案1】:

    使用 UITableViewCell contentView .

    UITableViewCell 对象的内容视图是单元格显示内容的默认超级视图。如果您想通过简单地添加其他视图来自定义单元格,则应将它们添加到内容视图中,以便在单元格进入和退出编辑模式时将它们适当定位

    示例:

     UIImage *_image = [imageDictionary objectForKey:@"image"]; // Get image data
     [_image drawInRect:CGRectMake(0,0,50,50)]; // set size
    
     UIImageView *imageView = [[UIImageView alloc] initWithImage: _image];
     [imageView setFrame:yourFrame];
     [cell.contentView addSubview:imageView];
    

    【讨论】:

      【解决方案2】:

      这并不能回答问题,但您的根本问题是您的方法。您应该通过继承 UITableViewCell 来自定义您的单元格。除此之外,将单元格内容作为视图来操作要比使用它们为您提供的默认图片和文本标签要容易得多。为了便于说明,单元格的内容位于称为 contentView 的视图上,可通过 cell.contentView 访问。您可以将文本标签、按钮和图像作为子视图添加到您想要的任何大小的任何位置,就像将任何视图添加为子视图一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-18
        • 1970-01-01
        • 1970-01-01
        • 2015-10-20
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        相关资源
        最近更新 更多