Отсечение UIImageView, если перемещено из CGRect - PullRequest
1 голос
/ 12 апреля 2011

Я хочу обрезать UIImageView, если он выходит за пределы заданного прямоугольника.

Изображение перемещается по экрану, устанавливая рамку, но мне нужно обрезать его, когда оно выходит из заданного фиксированного прямоугольника.(скажем (0,0 650 650)).

Ответы [ 3 ]

0 голосов
/ 12 апреля 2011

Вы пытались использовать свойство clipsToBounds из UIView и установить его на YES, как сказано в Ссылка , что

 Setting this value to YES causes subviews to be clipped to the bounds of the receiver 

ОБНОВЛЕНИЕ

Посмотрите, поможет ли вам этот вопрос SO

Правильное использование UIRectClip для масштабирования UIImage до размера значка

0 голосов
/ 12 апреля 2011
myImageView.contentMode = UIViewContentModeCenter;

Попробуйте это.

0 голосов
/ 12 апреля 2011

Если вы хотите показать только центр изображения и UIImageView, установите режим содержимого «Aspect Fill» через IB. Это отцентрирует его и обрежет все лишнее.

или в коде

myImageView.contentMode = UIViewContentModeScaleAspectFill;

или

Подкласс UIView и в методе drawRect отрегулируйте прямоугольник и вытяните обрезанное изображение, используя CGContextDrawImage (context, rect, sourceImage.CGImage).

или

Используйте CALayers. Вы можете настроить 'contentRect' слоя imageView:

CALayer* imageLayer = imageView.layer;
imageLayer.masksToBounds = YES;
CGRect rect;
if (inPortrait)
  rect = CGRectMake(0.0, 0.0, 0.5, 1.0); // half size
else 
  rect = CGRectMake(0.0, 0.0, 1.0, 1.0); // full size
imageLayer.contentsRect = rect;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...