UIImageView не будет изменять размер, чтобы соответствовать кадру UIView.

Я хочу, чтобы мой фон был изображением, поэтому в IB я установил UIImageView с ограничениями того же размера, что и его UIView. Однако, когда я выбираю «back» на UINavigationBar, когда NavControl появляется перед предыдущим VC, это то, что есть, ненадолго, прежде чем оно исчезнет: введите здесь описание изображения

То есть UIImageView настолько велик, что почти вдвое превышает ширину UIView, поэтому, когда он скользит за пределы экрана вправо, изображение UIImageView растягивается, прежде чем окончательно исчезнуть.

Я также пытался сделать это программно, но даже если я установил кадр UIImageView как CGRectMake(0, 0, 100, 100), он все равно уходит в левую сторону от UIView, как если бы начало координат UIView было не в верхнем левом углу, а немного отклонялось. экран. Это возможно? Как сделать так, чтобы изображение подходило к экрану и не пропадало?

Если это вообще уместно, то jpg, который я использую, находится в Images.xcassets, и, хотя я могу выбрать его в IB, и оно появляется, изображение UIImageView белое/пустое, поэтому в моем методе viewDidLoad мне нужно указать self.imageView.image = [UIImage imageNamed:@"hockeyIce.jpg"].


person Jameson    schedule 14.06.2015    source источник
comment
проверить ограничение?   -  person Bejibun    schedule 15.06.2015


Ответы (2)


  1. перейдите к Main.storyboard
  2. выберите представление в вопросе
  3. нажмите Инспектор атрибутов.
  4. прокрутите вниз до Вид, выберите Режим: Масштабировать до заполнения.
person abacaba    schedule 15.06.2015
comment
Итак, это действительно сработало. Но в родном виде изображение выглядит гораздо лучше. Нет ли способа сделать его AspectFill без выхода за пределы экрана? Это как-то связано с приоритетами объятий или сжатия? - person Jameson; 15.06.2015
comment
Ааа, я решил это. Мне нужно было добавить это в viewDidLoad: [self.imageView setClipsToBounds:YES]. - person Jameson; 15.06.2015

ОК, решение состояло в том, чтобы добавить [self.imageView setClipsToBounds:YES] к моему viewDidLoad. Оказывается, это частая проблема с aspectFill.

person Jameson    schedule 15.06.2015