Я пытаюсь нарисовать несколько миниатюр изображений фиксированного размера (100x100), используя UIImageView. Я установил размер кадра моего изображения 100x100 и установил contentModeв UIViewContentModeScaleAspectFill.
Насколько я понимаю, это должно привести к тому, что изображение будет нарисовано в размере, который я установил, и изображение заполнит область изображения, и обрежет любые части изображения, которые не соответствуют размеру, который я установил для вида изображения. Тем не менее, изображение по-прежнему отображается больше или меньше размера, установленного для него размером 100x100.
Если я установил contentModeна UIviewContentModeScaleToFill, то изображение рисуется точно 100х100, но это искажено , чтобы вписаться в эти размеры. Любые идеи, почему заполнение аспекта не обрезается, как ожидалось?
Вот мой код:
_photoView = [[UIImageView alloc] initWithImage:photoImage];
_photoView.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:_photoView];
CGRect photoFrame = _photoView.frame;
photoFrame.size = CGSizeMake(100, 100);
_photoView.frame = photoFrame;
Чтобы лучше проиллюстрировать, вот скриншот того, что я вижу. Зеленые квадраты - это то, UIViewс чем UIImageViewя работаю. Я установил их фоновый цвет на зеленый, а рамку вида на 100x100. Как тест, они UIImageViewsимеют размеры до 50х50. Как вы можете видеть, при использовании ...AspectFillизображения размеры не 50x50, а в некоторых случаях смещены от того места, где я бы их хотел. При использовании ...ScaleToFillони имеют правильный размер, но изображение искажено.



