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

Я работаю над универсальным приложением. У меня есть приложение на основе View, которое имеет один контроллер представления. Я добавляю 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;         
}

2 ответа

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

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

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

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

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

Другие вопросы по тегам