У меня проблема с моим приложением, когда я изменяю ориентацию в viewController. Если я получу в этом представлении контроллер в портретном режиме (ширина 320) и перейду на пейзаж, то кажется, что активна только 320 ширины ландшафтного режима, а остальная часть экрана кажется мертвой. Я попытался обновить view.Frame, когда ориентация изменилась, но она не сработала. Кто-нибудь может мне с этим помочь?Просмотр ограничений не обновляется после изменения ориентации IOS
- (void)updateLayoutForNewOrientation:(UIInterfaceOrientation)orientation{
if (self.interfaceOrientation == UIInterfaceOrientationPortrait || self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
// Portrait
self.view.frame=CGRectMake(0,0,320,500);
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"smallerView2.png"]];
self.thumbScrollView.frame = CGRectMake(20,100, 280, 72);
self.rightThumbArrow.frame=CGRectMake(1,107, self.rightThumbArrow.bounds.size.width, self.rightThumbArrow.bounds.size.height);
self.leftThumbArrow.frame=CGRectMake(self.view.bounds.size.width-30,107, self.leftThumbArrow.bounds.size.width, self.leftThumbArrow.bounds.size.height);
self.bigImageView.frame=CGRectMake(20,200, 280, 200);
self.previousPicBar.frame=CGRectMake(19,200, 10, 198);
self.nextPicBar.frame=CGRectMake(291,200, 10, 198);
self.leftArrowBtn.frame=CGRectMake(20,294, 8, 10);
self.rightArrowBtn.frame=CGRectMake(292,294, 8, 10);
}
else
{
// Landscape
self.view.frame=CGRectMake(0, 0, 500, 320);
NSLog(@"%f %f %f %f",self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.bounds.size.width, self.view.bounds.size.height);
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"smallerView2Landscape.png"]];
self.thumbScrollView.frame = CGRectMake(30,60, 520, 60);
self.rightThumbArrow.frame=CGRectMake(10,65, self.rightThumbArrow.bounds.size.width, self.rightThumbArrow.bounds.size.height);
self.leftThumbArrow.frame=CGRectMake(self.view.bounds.size.width-45,65, self.leftThumbArrow.bounds.size.width, self.leftThumbArrow.bounds.size.height);
self.bigImageView.frame=CGRectMake(120,120, 350, 140);
self.previousPicBar.frame=CGRectMake(119,122, 10, 136);
self.nextPicBar.frame=CGRectMake(461,122, 10, 136);
self.leftArrowBtn.frame=CGRectMake(120,180, 8, 10);
self.rightArrowBtn.frame=CGRectMake(462,180, 8, 10);
}
}
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self updateLayoutForNewOrientation:self.interfaceOrientation];
}
- (void)willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration{
[self updateLayoutForNewOrientation:self.interfaceOrientation];
}
Как вы изменили view.frame? Можете ли вы опубликовать код? В каком методе вы это сделали? –
Я редактировал свой вопрос с помощью некоторого кода. – hoya21