Я пишу приложение для iPhone. Для большинства сцен на нашей раскадровке поведение по умолчанию, когда телефон меняется с портретной ориентации на альбомную ориентацию, прекрасен. То есть это изменение макета мы хотим:Вращение одного вида и оставление другого без движения в Swift/Xcode для iOS при изменении ориентации
Но для одной из сцен в раскадровке я не хочу этого изменения макета. Вместо этого я хочу это:
Я смущен о том, как достичь последнего изменения макета. Я могу использовать классы размера, чтобы гарантировать, что зазор в 100 пикселей для панели инструментов будет меняться снизу (портрет) вправо (пейзаж), но я не могу понять, как правильно сдерживать панель инструментов, особенно потому, что ротация должна произойти в коде , например
switch (UIDevice.currentDevice().orientation) {
case UIDeviceOrientation.LandscapeLeft, UIDeviceOrientation.LandscapeRight:
self.toolbarView.transform = CGAffineTransformMakeRotation(CGFloat(3 * M_PI_2))
// Reposition toolbarView into space to the right of the content's view
break
default:
self.toolbarView.transform = CGAffineTransformIdentity
break
}
Что нужно сделать для правильной настройки панели инструментов?
Выглядит хорошо. Как отключить AutoLayout для элемента, чтобы манипуляции 'center' и' bounds' вы предлагали придерживаться? – dumbledad
Если вы используете раскадровку/xibs, убедитесь, что вы установите флажок «удалить во время сборки» в ограничениях панели инструментов. Это позволяет позиционировать панель инструментов из кода (потому что во время выполнения не будет ограничений на панели инструментов), а также отключает предупреждения конструктора интерфейса (потому что в построителе интерфейса все еще существуют необходимые ограничения). –
self.toolbarView на самом деле представляет собой составной UIView с собственными подчиненными (один другой UIView с некоторым текстом и изображением, а также UIToolbar). Привергнув переопределению layoutSubviews в положение self.toolbarView, могу ли я по-прежнему использовать автоматическую компоновку в своих подзонах или мне нужно все это выложить, манипулируя центрами и границами? – dumbledad