У меня есть UIView с двумя подвидами. Для UIView установлено значение UIViewAutoresizingFlexibleWidth. Теперь, когда он входит в 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 и использовать его, но я не думаю, что это правильный способ сделать это.
У кого-нибудь есть решение?