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

Как сделать UIImageView автоматически измененным на размер загруженного изображения

Я положил элемент управления UIImageView на мой взгляд с IB. Размер элемента управления - это то, что я решил, довольно случайный размер То, что я хочу сделать, - это элемент управления для автоматического изменения размера, когда я устанавливаю свойство изображения на новое изображение. Я хочу, чтобы он фактически изменял размер изображения. Можно ли это сделать автоматически? без вмешательства кода? Если нет - какой будет лучший подход в этом случае?

Что происходит сегодня, странно. Я загружаю изображения в ImageView, и я вижу, что изображения отображаются правильно, хотя размер ImageView не изменяется. Это мешает моему намерению захватить пользователей, затрагивающих ImageView. Пользователь касается фактического изображения, но поскольку некоторые части изображения находятся снаружи (и это странная часть) изображения, которое отображает точки, Может ли кто-нибудь подумать о каком-либо объяснении этому?

спасибо

4b9b3361

Ответ 1

Размер изображения не зависит от того, насколько велик UIImageView, а размер UIImageView зависит только от размера, предоставленного ему в Interface Builder (или того, что вы ему назначили). Кроме того, изображения будут все неприятны, если вы используете изображения @2x для дисплеев Retina, например.

Если вы хотите исправить это, вы также должны изменить кадр при настройке изображения. Если вы делаете это сейчас:

[imageView setImage:[UIImage imageNamed:@"myImage.jpg"]];

измените его на:

UIImage img = [UIImage imageNamed:@"myImage.jpg"];
[imageView setImage:img];
imageView.frame = CGRectMake(imageView.frame.origin.x, imageView.frame.origin.y,
                             img.size.width, img.size.height);

Однако это не изменит макет представления, в котором он содержится, вы можете заставить его изменять размеры других представлений автоматически в iOS 6 с помощью ограничений компоновки. Если вы являетесь разработчиком Apple, вы можете посмотреть видеоролики инструкций WWDC, они объясняют, как эта система работает достаточно хорошо.

Если вам все равно, что представление не растет, и проблема заключается в том, как изображение переполняет его, когда вы меняете его на тот, который не соответствует размеру содержащего представления, вы можете установить "Подвижные клипы", Установите флажок в Interface Builder для просмотра изображения. Это сделает так, чтобы в представлении не было ничего, кроме внешнего ограничивающего прямоугольника, если вы также установите режим масштабирования на "Аспект заполнения" или "Масштаб для заполнения", изображение всегда будет заполнять все границы отображаемого вида.