IOS. Должен ли изменение рамки UIImageView изменять размер изображения?
Может кто-то ответить на это окончательно? Похоже, что иногда изменение рамки UIImageView изменяет размер изображения, а иногда нет.
Я загрузил изображение и создал с ним UIImageView размером около 100x100. Выполнение следующего не имеет абсолютно никакого эффекта:
myImageView.contentMode = UIViewContentModeScaleAspectFit;
myImageView.frame = CGRectMake(0, 0, 30, 30);
Очевидно, я хочу сжать изображение вниз, но он просто останется в полном размере.
EDIT: если я это сделаю:
myImageView.clipsToBounds = YES;
Я получаю отрезанную часть изображения 30х30, но только верхний угол ее. Как уменьшить изображение до 30x30?
Ответы
Ответ 1
Старый вопрос, но в моем случае проблема пыталась внести изменения в "viewDidLoad" для контроллера вида. Попробуйте изменить рамку в "viewDidLayoutSubviews".
- (void)viewDidLayoutSubviews
{
//do uiimageview frame changing here
...
}
Ответ 2
Да, вы поступаете правильно. contentMode
, используемый таким образом, должен сохранять размер изображения в вашем представлении с сохраненным аспектом. И, очевидно, изменение рамки должно перемещать и изменять размер представления.
Вы уверены, что больше ничего не поймете? Является ли myImageView
nil почему-то здесь? (Если это созданный конструктором интерфейс, подключается ли розетка?)
Ответ 3
Вы бы подумали, что это сработает, но есть люди, которые везде имеют одну и ту же проблему. Единственный раз, когда я видел, что это работает, - это не автоматическое масштабирование, а фактическое изменение размера и перерисовка изображения: Как масштабировать UIImageView пропорционально?
Ответ 4
Как изменить размер UIImageView для соответствия базовому изображению без его перемещения?
Есть ответ.
-T -
Ответ 5
Попробуйте следующее:
myImageView. границы= CGRectMake (0, 0, 30, 30);
Мне не повезло с изменением рамки UIImageView, чтобы масштабировать изображение. Попробуйте вместо этого изменить границы.