У меня есть UIViewController
, в котором есть два UIViews, чей макет (установленный в Интерфейсном Разработчике) выглядит примерно так (пурпурный цветной вид - это вид по умолчанию UIViewController):
и я добавил основной вид в корневой вид, получив этот эффект (не показывая более темный вид, поместив его frame
внизу):
Сейчаскогда устройство вращается, я получаю следующее:
, тогда как я хотел бы скрыть более темный вид.Это код, который я использую, чтобы скрыть его, когда он появляется (я использую его в методе viewDidLoad
):
- (void)hideAll:(float)time{
CGRect hiddenFrame = CGRectMake(0, 1024, self.view.frame.size.width, self.view.frame.size.height);
[self.view setFrame:hiddenFrame];
[self.view setNeedsDisplay];
}
и он работает, но когда я вызываю его вариант при вращении (в willRotateToInterfaceOrientation:duration:
) ничего не происходит:
CGRect hiddenFrame = CGRectMake(0, 748, self.view.frame.size.width, self.view.frame.size.height);
[self.view setFrame:hiddenFrame];
[self.view setNeedsDisplay];
Чего мне не хватает?я должен установить какое-либо другое свойство представления в Интерфейсном Разработчике?
ОБНОВЛЕНИЕ
Мне кажется, что система координат не изменяется после того, как устройство было повернуто (то естьначало координат, заданное в верхнем левом углу в портретном режиме, станет верхним правым после вращения по часовой стрелке в ландшафтном режиме)