Мой текущий дизайн требует некоторой классной анимации между портретным и альбомным видами данных. Представление данных довольно сложное, поэтому между графическим элементом и элементами данных на экране, вероятно, одновременно находится около 30 кнопок и меток. Я создал очень тщательно разработанный интерфейс ... теперь я выкладываю элементы для ландшафта. До сих пор я нашел единственный способ сделать это - на самом деле выложить ландшафт в виде кода, например:
-(void) positionViews {
UIInterfaceOrientation destOrientation = self.interfaceOrientation;
if (destOrientation == UIInterfaceOrientationPortrait || destOrientation == UIInterfaceOrientationPortraitUpsideDown) {
//---if rotating into PORTRAIT mode
timeBGbox.frame = CGRectMake(14, 88, 134, 14);
targetTime.frame = CGRectMake(0, 99, 150, 29);
energyBGbox.frame = CGRectMake(156, 88, 68, 14);
targetEnergy.frame = CGRectMake(154, 99, 70, 29);
speedBGbox.frame = CGRectMake(234, 88, 68, 14);
targetSpeed.frame = CGRectMake(226, 99, 48, 29);
speedLabel.frame = CGRectMake(264, 99, 40, 36);
} else {
//---if rotating to LANDSCAPE mode
timeBGbox.frame = CGRectMake(156, 12, 152, 14);
targetTime.frame = CGRectMake(160, 23, 150, 29);
energyBGbox.frame = CGRectMake(156, 50, 68, 14);
targetEnergy.frame = CGRectMake(154, 61, 70, 29);
speedBGbox.frame = CGRectMake(234, 50, 74, 14);
targetSpeed.frame = CGRectMake(228, 61, 48, 29);
speedLabel.frame = CGRectMake(269, 61, 40, 36);
}
}
Это кропотливый процесс, требующий многих испытаний для достижения того, что я мог бы сделать визуально за считанные секунды в IB. В настоящее время, когда я переключаюсь между представлениями в IB и вручную перемещаю элементы в альбомном режиме, после переключения в портретный режим они оказываются не в том месте. Я использовал «пружины и распорки» настолько творчески, насколько это возможно, но большинство моих элементов нуждаются в точном ручном размещении за пределами AutoSizing.
Мой вопрос:
Есть ли в IB режим переключения, позволяющий разрабатывать две графические компоновки вида с использованием инструментов визуальной компоновки, или это единственный способ использовать числовой код?