Обрезать UIImage, чтобы он соответствовал изображению рамки
Мне нужно обрезать UIImage
, взятый с помощью камеры устройства, чтобы он помещался внутри другого UIImage
, который представляет frame
(с закругленными границами и т.д.). Проверьте изображение ниже:
Использование Aspect Fill
Использование Aspect Fit
Итак, мне нужно удалить избыток изображения, который выходит за рамки рамки.
Я попытался использовать UIBezierPath
, CGImageRef
и другие методы, которые я искал Google, но я не нашел для этого решения.
Ответы
Ответ 1
В Interface Builder используйте следующую конфигурацию:
![enter image description here]()
Существуют два важных параметра, а именно:
-
Mode: Aspect Fill
-
Clip Subviews
Это также можно сделать программно:
[imageView setContentMode:UIViewContentModeScaleAspectFill];
[imageView setClipsToBounds:YES];
Это правильно заполнит представление изображением, сохранит его соотношение сторон и скроет то, что не подходит.
Ответ 2
сделать IBOutlet
в вашем контроллере.
@property (retain)IBOutlet UIImageView* imageView;
и в -(void) viewDidLoad
установите
imageView.layer.masksToBounds = YES;
Ответ 3
В интерфейсе Builder войдите в меню "Режим" внутри панели подробностей (четвертый) и выберите правильный для своего UIImageView
(я думаю, "центр" или "аспект подходит" ).
![enter image description here]()
СТАРЫЙ ОТВЕТ:
Вы можете использовать свойство contentGravity
свойства CALayer, чтобы заставить его работать
Константа, которая определяет, как содержимое слоя размещается или масштабируется в пределах его границ.
@property(copy) NSString *contentsGravity
Ответ 4
Используйте UIImageView
и
imageView.contentMode = UIViewContentModeScaleAspectFit;