Я не знаю надежного способа сделать это.В одном из моих проектов я использовал UIApplicationWillChangeStatusBarOrientationNotification
.Запрос свойства frame
или bounds
представления возвращает несогласованные результаты в зависимости от того, охвачено ли представление другим представлением (могут быть и другие случаи нарушения).Возможно, в методе willRotateToInterfaceOrientation:
ситуация иная.
В моем случае я реализовал свой собственный метод для определения границ вида:
- (CGSize)currentViewSizeWithOrientation:(UIInterfaceOrientation)orient
{
CGSize size = self.currentView.bounds.size;
CGSize result;
if (UIInterfaceOrientationIsPortrait(orient))
result = CGSizeMake(fminf(size.width, size.height),
fmaxf(size.width, size.height));
else
result = CGSizeMake(fmaxf(size.width, size.height),
fminf(size.width, size.height));
return result;
}
В вашем случае выможет попытаться найти рамку вида, как только она будет загружена из пера.Затем либо определите, какой будет рамка в горизонтальной ориентации, либо явно установите рамку в Интерфейсном Разработчике и продублируйте ее в коде для обеих ориентаций.