2010-06-29 4 views

ответ

2

Приведенный ниже метод «return yes» изменит ориентацию, если он «возвращает NO», ориентация не изменится.

- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) orientation 
{ 

return YES; 

} 

Все самое лучшее.

+0

Это означает, что он будет автоматически вращаться во всех направлениях, что является целью для приложений. Если вы хотите ограничить ориентацию, вы можете вернуть, соответствует ли данная ориентация (аргумент) одной из [этих] (http://developer.apple.com/iphone/library/documentation/uikit/reference/UIApplication_Class/ Справка/reference.html # // apple_ref/DOC/UID/TP40006728-СН3-SW5). –

0

Чтобы ответить на вторую часть вашего вопроса, вы можете добавить логику для изменения размера или вид на позиции путем переопределения метода -willRotateToInterfaceOrientation:duration:, например:

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    if (toInterfaceOrientation == UIDeviceOrientationUnknown || toInterfaceOrientation == UIDeviceOrientationFaceUp || toInterfaceOrientation == UIDeviceOrientationFaceDown) { 
     // do something here for these orientations 
    } 
    else { 
     // do something else for the remaining orientation types 
    } 
} 
0

если ваш контроллер представления не-контроллер верхнего уровня, вы должны передать сообщение willRotateToInterfaceOrientation: продолжительность: от контроллера вида сверху слоя .. контроллер вида не может получить сообщение ...

на willRotateToInterfaceOrientation моего верхнего слоя зрения контроллера: продолжительность :, я включил это line ... (frameViewController является моим контроллером 2-го уровня)

if (frameViewController) 
     [frameViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; 
Смежные вопросы