Как установить позицию в UILabel, если находится внутри моего detailView (splitView), но у меня есть проблемы в viewDidLoad и willRotateToInterfaceOrientation

Я пытаюсь улучшить приложение для iOS (Objective-C). Для iPhone/iPod все отлично работает, но проблема для iPad.

В iPad я использовал SplitView для вызова indexTable.h как мастер и PlayGround.h как деталь. Внутри PlayGround я вызывал некоторые классы (например, insideView), но когда я запускаю приложение в альбомной ориентации (в iPad), у меня есть UILabels в viewDidLoad (только для iPad, для других устройств это другое) с этой позицией:

self.labelAirName.frame = CGRectMake((self.insideView.bounds.size.width/2), 110, self.insideView.bounds.size.width/2, 30);
self.labelMaterialName.frame = CGRectMake((self.insideView.bounds.size.width/2), 80, self.insideView.bounds.size.width/2, 30);
self.airLabel.frame = CGRectMake((self.insideView.bounds.size.width/2)-95, 110, 90, 30);
self.materialLabel.frame = CGRectMake((self.insideView.bounds.size.width/2)-95, 80, 90, 30);

Я использую InsideView, потому что мне нужен этот размер в качестве ссылки, и у меня есть

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                                duration:(NSTimeInterval)duration {
//for iPad landscape i call the last mentioned values, because for portrait all the labels change their positions
}

когда я звоню willRotateToInterfaceOrientation, это работает хорошо, но когда я начинаю, размеры разные.

Это проблема с моим splitView? Как я могу получить размер DetailView?

1 ответ

Apple рекомендует использовать Size class добиться другого позиционирования в Regular а также Compact Режим. ОС убивает приложение Если ручное вычисление занимает много памяти, так как вычисление выполняется 60 раз в секунду.

Используйте автопоставку для лучшей производительности / Полноэкранный режим - лучший вариант.

если вы все еще хотите сделать свои собственные вычисления, вы можете сделать это в

- (void)layoutSubviews

метод

Другие вопросы по тегам