Подвид UIView не изменяет размер

Я работаю над универсальным приложением. У меня есть приложение на основе представления, в котором есть один контроллер представления. Я добавляю UIImageView в качестве подпредставления.

Моя проблема в том, что если я помещаю ImageView в viewDidLoad, его размер изменяется в iPad.

Но если я добавлю ImageView для динамического просмотра контроллера при нажатии кнопки, размер UIImageView не изменится в соответствии с iPad. Вместо этого он показывает ImageView с размерами 320 x 480.

Примечание: My View Controller имеет setAutoresizesSubviews до YES.

Мой код выглядит следующим образом:

-(void)buttonTap
{    
    UIImage *img = [[UIImage alloc]initWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"main-bg" ofType:@"png"]];
    UIImageView *imgViewMainBG = [[UIImageView alloc]initWithImage:img];
    imgViewMainBG.frame = CGRectMake(0,0,320,480);
    imgViewMainBG.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:imgViewMainBG];
    [imgViewMainBG release];
    [img release];
    img=nil;         
}

person Devon Smith    schedule 03.09.2012    source источник


Ответы (2)


AutoresizingMask предназначен для изменения размера всех подпредставлений в соответствии с изменением размера суперпредставления всякий раз, когда изменяется размер суперпредставления, он не будет изменять размер подпредставлений во время добавления подпредставления.

Но вы можете найти границы или фрейм self.view и установить свойство фрейма для imageView в соответствии с этими границами, как показано ниже.

 [imgViewMainBG setFrame:CGRectMake(0, 0, self.view.frame.size.width,  
                                    self.view.frame.size.height)];

так что imgViewMainBG полностью виден в ipad

person vignesh kumar    schedule 03.09.2012
comment
Спасибо за ответ. но я не могу использовать это, потому что у меня есть другие подпредставления, размер которых не совпадает с размером экрана. Другие подвиды имеют разные размеры, например (20,20,100,150). Я хочу, чтобы эти subviews автоматически изменяли размер в ipad. - person Devon Smith; 04.09.2012
comment
Это избавило меня от многих горя, спасибо за такое простое и понятное решение! - person ; 27.01.2013

Попробуйте изменить свойство contentMode представления изображения на UIViewContentModeScaleToFill.

person Andriy    schedule 03.09.2012