2013-06-25 6 views
1

Мне нужно обрабатывать все коэффициенты экрана iOS (3,5 дюйма, 4 дюйма). Я не использую autolayout, потому что мне нужно iOS совместимость 5.x.Вычислительная рамка UIView для заданной ориентации устройства

В моем приложении мне нужно реорганизовать мои кнопки и значки при изменении ориентации устройства, переход от Портрета:

Logo 
- 
Button 1 
Button 2 
Button 3 

ландшафтному:

 Button 1 
Logo Button 2 
     Button 3 

Из-за различные соотношения экрана, мне нужно для регулировки высоты логотипа в портрете в соответствии с Y-позицией кнопки 1 и для регулировки ширины логотипа в ландшафте на основе положения X кнопки 1.

Для того, чтобы обеспечить плавную анимацию, я хотел бы реализовать:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval) 

и начать анимацию, которая будет работать в том же сроки, чем анимации вращения устройства. Проблема в том, что мне нужен целевой кадр «Button 1» для моего вычисления (кадр после вращения устройства), и у меня есть только кадр его начального состояния.

Если я дождался завершения первоначального вращения (это то, что я реализовал до сих пор), вы увидите, что приложение выполняет поворот, а THEN - позиционирование, которое ... не удовлетворяет меня.

Таким образом, в одном вопросе, который дал бы: «Есть ли способ, чтобы попросить обрамлении UIView данного конкретного устройства ориентации Может раскадровка ...?»

Она должна быть доступна где-то, потому что анимация iOS должна вычислить эту информацию, чтобы начать ее анимацию?

+0

вам нужно использовать маску ... автоматического изменения – Jitendra

+0

Пробовали ли вы авто изменение размеров в XIB? – satheeshwaran

+0

вы должны рассчитать позицию отдельно в портретном и ландшафтном режимах, затем использовать маску авторезистировки для соответствия решению разностного экрана. – adali

ответ

0

Один из способов найти на экране границы, чтобы сделать следующее:

CGRect screenBounds = [[UIScreen mainScreen] bounds];