UIView меняет ширину после переключения ориентации на ландшафт? - PullRequest
0 голосов
/ 16 ноября 2010

Я получил UIView с 2 подпредставлениями. UIView установлен в UIViewAutoresizingF FlexibleWidth. Теперь, когда он входит в layoutSubviews, он изменяет размеры кадров подпредставлений относительно UIView следующим образом:

rect.size.width  = self.frame.size.width - rect.origin.x - textLabel.frame.origin.x;

Но проблема возникает в ландшафтном режиме, потому что в портретном режиме self.frame.size.width (и границы в этом отношении) отвечают 768 при запуске и 788 после того, как он закончил вращение. То есть, когда он вращается, кажется, что он добавляет 20 пикселей, что я полагаю, это строка состояния.

Когда я жестко кодирую 768, все работает как положено. Но я не хочу этого, конечно. Я мог бы сохранить исходное состояние в var и использовать его, но я не думаю, что это правильный способ сделать это.

У кого-нибудь есть решение?

1 Ответ

0 голосов
/ 16 ноября 2010

Привет,

в моем приложении я столкнулся с той же проблемой. Чтобы решить эту проблему, я просто использовал метод didRotateFromInterfaceOrientation: для изменения размера представления при повороте устройства.

self.view.frame = CGRectMake(0,0,self.view.bounds.size.width,self.view.bounds.size.height);

Надеюсь, это поможет.

...