Ответ 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 для просмотра изображения. Это сделает так, чтобы в представлении не было ничего, кроме внешнего ограничивающего прямоугольника, если вы также установите режим масштабирования на "Аспект заполнения" или "Масштаб для заполнения", изображение всегда будет заполнять все границы отображаемого вида.