 <p>Here's a category on <code>UIImageView</code> that you can use to introspect the bounds of the displayed image based on the <code>UIViewContentMode</code> set on the image view:</p> <pre><code>@implementation UIImageView (JRAdditions) - (CGRect)displayedImageBounds { UIImage *image = [self image]; if(self.contentMode != UIViewContentModeScaleAspectFit || !image) return CGRectInfinite; CGFloat boundsWidth = [self bounds].size.width, boundsHeight = [self bounds].size.height; CGSize imageSize = [image size]; CGFloat imageRatio = imageSize.width / imageSize.height; CGFloat viewRatio = boundsWidth / boundsHeight; if(imageRatio &lt; viewRatio) { CGFloat scale = boundsHeight / imageSize.height; CGFloat width = scale * imageSize.width; CGFloat topLeftX = (boundsWidth - width) * 0.5; return CGRectMake(topLeftX, 0, width, boundsHeight); } CGFloat scale = boundsWidth / imageSize.width; CGFloat height = scale * imageSize.height; CGFloat topLeftY = (boundsHeight - height) * 0.5; return CGRectMake(0, topLeftY, boundsWidth, height); } @end </code></pre>