我正在尝试将图片设置为UIImageView
中SimpleTableCell
的{{1}}。我已经改变了imageview的大小,但每当我尝试设置图像时,它会自动调整大小。我尝试使用代码here来调整图像大小并进行设置。但它仅在我将图像尺寸设置为(20x20)时才有效,该尺寸是UITableView
(40x40)尺寸的一半。所以它模糊了。我还尝试设置UIImageView
和UIAspectRatioFit/UIAspectratioFill
。似乎没什么用。
另一个奇怪的部分是,当我使用直接从网上下载的图像时,clipsToBounds = YES
不会自行调整大小:
imageView
然后我将此图像存储到文档目录中,然后尝试在其他地方重新加载,进行大小调整。任何解决方案?
答案 0 :(得分:14)
您的SimpleTableCell是您创建的UITableViewCell
的子类吗?这个imageView是这个子类的属性吗?
只是一个猜测:
每个UITableViewCell都有一个内置的imageView只读属性。在你发布的代码中,你正在使用这个默认属性,我认为它不能修改它的框架,它在单元格的左侧是固定的。
在文档中查找imageView属性:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/index.html#//apple_ref/occ/instp/UITableViewCell/imageView
因此,如果你的自定义单元格有自己的imageView,请确保不要将其称为imageView
,因为你可能会使用默认的UITableViewCell
属性,而不是你自己的属性,它将具有您的所有框架自定义等。
您应该通过customClass引用您的单元格并按照以下方式调用您的属性:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
UIImage *userImage = [UIImage imageWithData:userImageData scale:self.profileImage.frame.size.height/self.profileImage.frame.size.width];
SimpleTableCell *cell = (SimpleTableCell*)[self.myTable cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
cell.myImageView.image = userImage;
}
不知道问题是否真的与此有关,所以请告诉我是否有帮助。
答案 1 :(得分:1)
当我发生奇怪的大小调整行为时,Autolayout是我的第一个嫌疑人。尝试关闭Autolayout并查看调整大小是否仍然存在。
如果你需要Autolayout,你可能不得不用一些代码来对抗它。