【发布时间】:2014-06-14 13:38:41
【问题描述】:
我的代码大部分都可以工作。
- 我遇到的问题是图像一开始是方形的,当我滚动表格或刷新表格时变为圆形。
我错过了什么?
这是我的代码:
cell.imageView.layer.cornerRadius = cell.imageView.frame.size.width / 2.0;
cell.imageView.layer.borderWidth = 3.0;
cell.imageView.layer.borderColor = [UIColor colorWithRed:157.0/255.0 green:34.0/255.0 blue:53.0/255.0 alpha:1.0]
.CGColor;
cell.imageView.clipsToBounds = YES;
NSDictionary *tweet = (self.results)[indexPath.row];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSString * imageString = [tweet valueForKeyPath:@"user.profile_image_url"];
NSData * imageData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:imageString]];
if (imageData != nil)
{
dispatch_async(dispatch_get_main_queue(), ^{
cell.imageView.image = [UIImage imageWithData: imageData];
[cell setNeedsLayout];
});
}
});
EDIT ---- 代码在cellForRowAtIndexPath
- 当我启动应用程序时,单元格图像是方形的。如果我
pullToRefresh更改为圆形,或者如果我开始滚动表格,它们将更改为圆形。
编辑两个
我看到的另一个问题是滚动时图像会发生变化。
如何防止这种情况发生?
【问题讨论】:
-
你在哪里有这个代码?
-
您发布的代码表明您希望图像视图是圆形的,对吗?那么问题是它们最初看起来并不圆?
-
它在 cellForRowAtIndexPath 中。是的,我希望它们始终是圆形的,但是如果我刷新或滚动,它们会以方形开始并更新为圆形。
-
这里的每一件事都取决于行高。因此,如果您的行高为 100,只需将 cell.imageView.layer.cornerRadius=50;这意味着总是 rowHeight/2。
-
我遇到了同样的问题。有时
UIImageView是圆形,有时不是。但是我发现如果您的图像高度和宽度等于单元格的高度,它会起作用。
标签: ios objective-c uitableview uiimageview