Обновить размер кадра ImageView для больших экранов - PullRequest
0 голосов
/ 29 мая 2018

Я хочу обновить ширину и высоту кадра моего ImageView, если это iPad. Я пытался сделать что-то вроде этого, он работает, но представление обновляется только при выполнении какого-либо взаимодействия с пользовательским интерфейсом.

-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil isKneeMap:(BOOL)tIsKnee{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
            // Custom initialization            
    } if(I_PAD){
        VAL = IS_IPAD ? 1.5 :1;
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.ImgViewL = [[UIImageView alloc]
                     initWithFrame:CGRectMake(0,0,140*VAL,290*VAL)];
    self.view = self.myView;
}

Я также пытался [self.view LayoutIfNeeded], но без изменений тот же результат. Есть ли лучший способ сделать это. Пожалуйста, помогите мне выйти из этой проблемы.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

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

Ваш метод определения размера изображения имеет потенциальные проблемы - вы используете тот же размер наУстройства SE и Plus, а на 9,7 "iPad - 12,9" iPad pro.Вам следует подумать о настройке ограничений для использования пропорционального размера ...

enter image description here

В приведенном выше примере изображение на iPhone будет иметь ширину 140pt8 / X, 124pt на SE и 155 на устройствах Plus.

В качестве альтернативы, если вы хотите получить множитель 1,5 iPad с помощью раскадровки, вы можете добавить различные константы для вариаций ширины и высоты…

enter image description here

Это даст ширину 140 на всех iPhone в портретной ориентации (компактная ширина, обычная высота) и 210 на iPad во всех ориентациях (обычная ширина и высота)

0 голосов
/ 29 мая 2018

Используйте выходы ограничений ширины и высоты, обновите их и вызовите layoutIfNeeded ().

@IBOutlet weak var imageViewWidthConstraint: NSLayoutConstraint!
@IBOutlet weak var imageViewHeightConstraint: NSLayoutConstraint!

imageViewWidthConstraint.constant = 140*VAL
imageViewHeightConstraint.constant = 290*VAL

view.layoutIfNeeded()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...