2012-05-17 2 views
-1

Я хочу установить положение UILable программно в зависимости от ориентации. Но когда я вернусь к портрету, это не сработает.iPhone Изменение ориентации рамки зрения

Вот мой код:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    if([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortraitUpsideDown) 
    { 
     lblUserName.frame = CGRectMake(20, 200, 280, 44); 
     lblPassword.frame = CGRectMake(20, 246, 280, 44); 
    } 

    else 
    { 
     lblUserName.frame = CGRectMake(20, 220, 280, 44); 
     lblPassword.frame = CGRectMake(20, 266, 280, 44); 
    } 
} 

Заранее спасибо.

+0

Я также использовал toOrienation для проверки текущей ориентации – NSPratik

+0

Вы слишком рано вызываете метод statusBarOrientation, устройство еще не повернулось, поэтому statusBarOrientation вернет вращение, которое вы вращаете из – Otium

ответ

2

Есть 2 possibilities.Either вы можете установить метку programatically.And проверить состояние для ориентации в - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {}

method.Otherwise вы можете использовать автоматическое изменение размера маски ,

1

попробовать с этим условием IF:

if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) 
{ 

} 
else {} 
1
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
//write code here 
return YES; 
} 

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 
{ 
//write code here 
} 

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

Смежные вопросы