我有这样做的两个侧面观点: containerView - 两个视图的容器 firstView - 由UIImageView组成的可见视图 secondView - 翻转后可见视图
现在我正在使用SDWebImage库下载图像异步以在firstView上显示方法:
[view.imageView setImageWithURL:[NSURL URLWithString:item.image]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
图像可以是水平或垂直的。 现在我希望secondView与呈现的图像大小相同。我想在UIImageView自定义setter中设置它,但我不知道如何获得该方法。 也许还有其他想法吗?
编辑:
图像
我想我知道怎么做。我现在需要的是UIImageView.image的实际可见大小。
答案 0 :(得分:1)
如果您乐意将AVFoundation
导入到项目中,这是一个便捷函数AVMakeRectWithAspectRatioInsideRect
,它会获取图像大小和图像视图框,并为您提供图像显示的大小。
显然,您可以自己编写一些代码,使用一些小数学来计算相同的值。
答案 1 :(得分:0)
为正在下载的图片创建property
。然后为此setter
创建自定义property
- 在此处更新您的secondImageView
尺寸。
这样,每次imageBeingDownloaded
下载完成后,都会设置图片 - 然后会更新secondImageView size
即
在实施档案
中@property (nonatomic, weak) UIImage *imageBeingDownloaded; // creates the property
// The custom setter
- (void)setImageBeingDownloaded:(UIImage *)imageBeingDownloaded {
_imageBeingDownloaded = imageBeingDownloaded;
self.secondImageView.size = _imageBeingDownloaded.size; // each time the image is set this will update secondImageView
}
然后
[view.imageView setImageWithURL:[NSURL URLWithString:item.image]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
成为
[self.imageBeingDownloaded setImageWithURL:[NSURL URLWithString:item.image]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];