поддержка ориентации в ios5 - PullRequest
0 голосов
/ 09 января 2012

Я занимаюсь разработкой приложения с поддержкой ориентации как в портретном, так и в ландшафтном режиме.

Я добился этого, изменив рамку вида и размер активов в

    -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
self.view.frame = CGRectMake(0,0,1024,768);
}

Хорошо работает в ios4.3 и ниже.

Когда я пытался запустить в Xcode4.2 и ios5.0, ориентация симулятора не ясна.Я имею в виду, что при смене портретного на альбомный вид не умещается на экране (размер кадра меньше, чем фактический размер кадра в альбомной ориентации).

Есть идеи, почему это происходит?

Большое спасибо, Ави

Ответы [ 2 ]

2 голосов
/ 09 января 2012

применять фрейм, когда действительно произошло изменение ориентации. Xcode4.2 и iOS 5 быстро реагируют на изменение ориентации, а другие виды и элементы управления улучшены, поэтому он не работает для вас, поэтому вы попробуете его либо в didRotateFromInterfaceOrientation, либо в willRotateFromInterfaceOrientation, он будет работатьхорошо сейчас.

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   //support for all orientation change 
    return YES;
}
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
 // in iOS statusBarOrientation is correct than all other orientation changes  
 if(UIDeviceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation))
  self.view.frame = CGRectMake(0,0,1024,768);
 else
  self.view.frame = CGRectMake(0,0,768,1024);

}
0 голосов
/ 09 января 2012

Проверьте поддержку ориентации в настройке свойства и попробуйте с этим

это со строкой состояния

  -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{

if(interfaceOrientation == UIInterfaceOrientationPortrait){
   self.view.frame = CGRectMake(0,0,768,1004);
}
else{
   self.view.frame = CGRectMake(0,0,1024,748);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...