Я пытаюсь сделать несколько уменьшенных изображений с фиксированным размером (100x100) с помощью UIImageView
. Я установил размер кадра моего изображения равным 100x100 и установил contentMode
в UIViewContentModeScaleAspectFill
.
Мое понимание заключается в том, что это должно привести к тому, что изображение будет нарисовано с установленным мной размером, и изображение заполнит область изображения и скопирует любые части изображения, которые находятся за пределами размера, установленного для представления изображения, Однако изображение по-прежнему нарисовано больше или меньше размера 100x100, который я установил для него.
Если я установил contentMode
в UIviewContentModeScaleToFill
, тогда изображение будет нарисовано ровно на 100x100, но оно искажено, чтобы вписаться в эти размеры. Любые идеи, почему заполнение аспект не обрезается, как ожидалось?
Здесь мой код:
_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
равен 50x50. Как вы можете видеть, при использовании ...AspectFill
изображения не имеют размер 50x50 и в некоторых случаях смещены от того места, где они мне нравятся. При использовании ...ScaleToFill
они имеют правильную размерность, но изображение искажено.