iphone – 如何从UIImageView获取显示的图像帧? - 代码日志

iphone – 如何从UIImageView获取显示的图像帧?

我修改UIImageView的contentMode属性。所以我的图像框架不等于UIImageView的框架。我的问题是如何从UIImageView中读取图像的框架。

如下例所示,橙色矩形是UIImageView的边框。显然,图像框架与UIImageView不一样。

如果是UIViewContentModeScaleAspectFit,它是这样的:

UIImageView *iv; // your image view
CGSize imageSize = iv.image.size;
CGFloat imageScale = fminf(CGRectGetWidth(iv.bounds)/imageSize.width, CGRectGetHeight(iv.bounds)/imageSize.height);
CGSize scaledImageSize = CGSizeMake(imageSize.width*imageScale, imageSize.height*imageScale);
CGRect imageFrame = CGRectMake(roundf(0.5f*(CGRectGetWidth(iv.bounds)-scaledImageSize.width)), roundf(0.5f*(CGRectGetHeight(iv.bounds)-scaledImageSize.height)), roundf(scaledImageSize.width), roundf(scaledImageSize.height));
http://stackoverflow.com/questions/4711615/how-to-get-the-displayed-image-frame-from-uiimageview

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:iphone – 如何从UIImageView获取显示的图像帧?