我正在设置一个表格单元格ImageView,如下所示:
NSURL *url = [[NSURL alloc] initWithString:[account valueForKeyPath:@"Avatar"]];
[cell.imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"default.png"]];
然后我使用表格单元子类并调整图像大小并使其像下面一样:
- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.bounds = CGRectMake(0,0,32,32);
self.imageView.layer.cornerRadius = 16;
self.imageView.clipsToBounds = YES;
}
这实际上很有效,直到我真正点击表格行。然后它会将图像向左移动一些像素。
只有图像不是完美的正方形。示例100x75而不是100x100
我一定在这里丢失一些小东西?这是一张显示偏移量的小图片:
仅供参考我参考这篇文章:How do I make UITableViewCell's ImageView a fixed size even when the image is smaller
修改
我还尝试过这个表格格式cellForRowAtIndexPath
:
然而,这似乎有效,因为在加载表视图时并非所有图像都被加载,直到我开始滚动
[[SDWebImageManager sharedManager] downloadImageWithURL:url options:0 progress: nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
// resize image code here, then set below
cell.imageView.image = image;
}];
答案 0 :(得分:0)
在我的情况下,我做了这个
-(void)layoutSubviews
{
[super layoutSubviews];
[self layoutIfNeeded];
self.imageView.layer.cornerRadius = (self.imageView.bounds.size.width / 2.0);
self.imageView.layer.masksToBounds = YES;
}
我没有在运行时更改边界。希望它有所帮助
答案 1 :(得分:0)
仅供参考我最后创建了一个自定义的UITableViewCell,其UIImageView定义的宽度/高度为32x32,自定义标签基本上模仿了Right Detail视图。
答案 2 :(得分:-1)
试试这个:
- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.frame = CGRectMake(0,self.frame.size.width/2-16,32,32);
self.imageView.layer.cornerRadius = 16;
self.imageView.clipsToBounds = YES;
}
或者您可以尝试设置autoresizingMask