Изображение не помещается в UIImageView

Я новичок в разработке iOS и застрял в следующей проблеме.

В файле.xib у меня есть кнопка и изображение, как показано на следующем изображении.

введите описание изображения здесь

Теперь я сделал следующее, чтобы показать изображение в виде изображения и установить режим содержимого в файле.m.

UIImage *save = UIGraphicsGetImageFromCurrentImageContext();
self.ivCard.image = save;
self.ivCard.contentMode = UIViewContentModeScaleAspectFit;
self.ivCard.clipsToBounds = YES;

Теперь результат выглядит следующим образом.

введите описание изображения здесь

Исходное изображение имеет разрешение 2000х1000, вот оно

введите описание изображения здесь

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

2 ответа

Решение

Уверен, что вы не добавили ограничения в ImageView, размер ImageView не совпадает с размером устройства.

Добавьте ограничения из ImageView к границам в Интерфейсном Разработчике, и это будет работать.

Проверьте: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithConstraints/WorkingwithConstraints.html

Есть 2 способа добиться этого.

  1. Вы можете перейти к ограничениям и добавить ограничения к своему изображению из файла.xib или программно, как показано ниже:

    // выравниваем ivCard слева и справа

     [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[ivCard]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(ivCard)]];
    

    // выравниваем ivCard сверху и снизу

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[ivCard]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(ivCard)]];
    
  2. Вы можете напрямую установить рамку для просмотра изображения, используя этот код:

    CGFloat btnHeight = 20; // Your back button height from xib
    
    self.ivCard.frame = CGRectMake(0, btnHeight, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - btnHeight);
    
Другие вопросы по тегам