在 UITableViewCell 中调整 UIImageView 的大小

Posted

技术标签:

【中文标题】在 UITableViewCell 中调整 UIImageView 的大小【英文标题】:Resize UIImageView in TableViewCell 【发布时间】:2013-10-22 17:45:37 【问题描述】:

我的 TableViewCell 中有 UIImageView。此图像解析自例如苹果 JSON。图像显示并且一切正常,但我在单元格中调整此图像的大小时遇到​​问题。我试过这个但没有。我阅读了许多主题,人们也有同样的问题。我知道如何从 URL 制作图片的大小,但我已经解析图像并粘贴到 cell.imageView。

所以我的 JSON 图像代码:

[cell.imageView setImageWithURL:[NSURL URLWithString:[[array objectAtIndex:indexPath.row] objectForKey:@"artworkUrl60"]] placeholderImage:[UIImage imageNamed:@"noholder.png"]];

我测试了这段代码,但单元格中图片的大小没有任何变化

cell.imageView.frame=CGRectMake(50,50,300,300);

如何更改单元格中图像的大小但没有 URL 链接。我必须更改单元格中的图片大小。谢谢。

【问题讨论】:

【参考方案1】:

您需要创建一个自定义单元格(至少对于 ios 7)。

这是一个示例:.h

@interface UITableViewImageCell : UITableViewCell 
    CGRect                  _imageViewFrame;


/**
 * To use default, set width and height to 0
 */
@property(nonatomic, assign)    CGRect              imageViewFrame;
@end

.m

@implementation UITableViewImageCell
@synthesize imageViewFrame=_imageViewFrame;

-(void)setImageViewFrame:(CGRect)imageViewFrame
    _imageViewFrame = imageViewFrame;
    [self setNeedsLayout];


-(void)layoutSubviews
    [super layoutSubviews];
    if (_imageViewFrame.size.width>0 && _imageViewFrame.size.height>0) 
        self.imageView.frame = _imageViewFrame;
    


@end

使用这个类,你必须调用:

cell.imageViewFrame=CGRectMake(50,50,300,300);

【讨论】:

以上是关于在 UITableViewCell 中调整 UIImageView 的大小的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableViewCell 中动态调整 UILabel?

在 UITableViewCell 中自动调整 UILabel 的大小

在 UITableViewCell 中调整 UIImageView 的大小

在 iOS Swift 中动态调整 UITableViewCell 高度

在具有自动布局的 UITableViewCell 中动态调整大小的 UIWebView - 违反约束

调整 UITableViewCell 高度