Подтвердить что ты не робот

IOS. Должен ли изменение рамки UIImageView изменять размер изображения?

Может кто-то ответить на это окончательно? Похоже, что иногда изменение рамки UIImageView изменяет размер изображения, а иногда нет.

Я загрузил изображение и создал с ним UIImageView размером около 100x100. Выполнение следующего не имеет абсолютно никакого эффекта:

myImageView.contentMode = UIViewContentModeScaleAspectFit;
myImageView.frame = CGRectMake(0, 0, 30, 30);

Очевидно, я хочу сжать изображение вниз, но он просто останется в полном размере.

EDIT: если я это сделаю:

myImageView.clipsToBounds = YES;

Я получаю отрезанную часть изображения 30х30, но только верхний угол ее. Как уменьшить изображение до 30x30?

4b9b3361

Ответ 1

Старый вопрос, но в моем случае проблема пыталась внести изменения в "viewDidLoad" для контроллера вида. Попробуйте изменить рамку в "viewDidLayoutSubviews".

- (void)viewDidLayoutSubviews
{
    //do uiimageview frame changing here
    ...   
}

Ответ 2

Да, вы поступаете правильно. contentMode, используемый таким образом, должен сохранять размер изображения в вашем представлении с сохраненным аспектом. И, очевидно, изменение рамки должно перемещать и изменять размер представления.

Вы уверены, что больше ничего не поймете? Является ли myImageView nil почему-то здесь? (Если это созданный конструктором интерфейс, подключается ли розетка?)

Ответ 3

Вы бы подумали, что это сработает, но есть люди, которые везде имеют одну и ту же проблему. Единственный раз, когда я видел, что это работает, - это не автоматическое масштабирование, а фактическое изменение размера и перерисовка изображения: Как масштабировать UIImageView пропорционально?

Ответ 5

Попробуйте следующее:

myImageView. границы= CGRectMake (0, 0, 30, 30);

Мне не повезло с изменением рамки UIImageView, чтобы масштабировать изображение. Попробуйте вместо этого изменить границы.