Подвид 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
,