UIImageView.image setter

时间:2013-09-22 08:19:30

标签: ios objective-c uiimageview

我有这样做的两个侧面观点: containerView - 两个视图的容器 firstView - 由UIImageView组成的可见视图 secondView - 翻转后可见视图

现在我正在使用SDWebImage库下载图像异步以在firstView上显示方法:

    [view.imageView setImageWithURL:[NSURL URLWithString:item.image]
                   placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

图像可以是水平或垂直的。 现在我希望secondView与呈现的图像大小相同。我想在UIImageView自定义setter中设置它,但我不知道如何获得该方法。 也许还有其他想法吗?

编辑:

图像enter image description here

我想我知道怎么做。我现在需要的是UIImageView.image的实际可见大小。

2 个答案:

答案 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"]];