Crop UIImage to fit a frame image

In Interface Builder, use the following configuration:

enter image description here

There are two important settings, namely:

  1. Mode: Aspect Fill

  2. Clip Subviews

It can also be done programmatically:

[imageView setContentMode:UIViewContentModeScaleAspectFill];
[imageView setClipsToBounds:YES];

This will correctly fill the view with the image, keep its aspect ratio and hide what doesn't fit.


make a IBOutlet in your controller.

@property (retain)IBOutlet UIImageView* imageView;

and in -(void) viewDidLoad set

imageView.layer.masksToBounds = YES;

In interface Builder, access the Mode menu inside of the detail pane (the fourth one) and choose the right one for your UIImageView (I guess "center" or "aspect fit").

enter image description here

OLD ANSWER:

You can use the contentGravity property of CALayer to make it work

A constant that specifies how the layer's contents are positioned or scaled within its bounds.

       @property(copy) NSString *contentsGravity