I have a UIImageView
object configured with Auto Layout. I have created constraints so that the view keeps a constant distance to its superview. In visual format it would be like:
@"V:|-[imageView]-|"
@"H:|-[imageView]-|"
But I would also like to keep the aspect ratio of the underlying image, so I have assigned UIViewContentModeScaleAspectFit
to contentMode
.
I thought everything was working well until I set the cornerRadius
value of the associated CALayer
:
self.imageView.layer.cornerRadius = 7;
self.imageView.layer.maskToBounds = YES;
Now when the image view is resized, e.g. due to a change in orientation, the rounded corners are lost depending on the new size the view gets. The reason is that cornerRadius
applies to the UIImageView
(frame in dashes below), but since the underlying image is also resized to respect contentMode
(frame in asterisks below), rounded corners are not visible anymore:
--------------------------
| ********** |
| * * |
| * * |
| * * |
| ********** |
--------------------------
Is there a way to prevent this behavior?