Я разрабатываю приложение, предназначенное для iOS 6.1 и выше, iPhone и iPads. Это в основном openGL и использует GLKit. У меня есть простой выбор цвета для изменения цветов. Это всего лишь квадрат с цветом и три ползунка: красный, зеленый и синий. Я перегружаю viewWillLayoutSubviews, чтобы сделать это: в портретном режиме квадрат сверху с ползунками внизу. В ландшафтном режиме ползунки перемещаются вправо. За исключением того, что я продолжаю получать неожиданное поведение в зависимости от симулятора (у меня только iPhone 5 iOS 8, и он ведет себя отлично).Размеры ландшафтной рамки, iOS 7 vs 8 vs 6
Так что я написал небольшой код отладки, чтобы увидеть, что происходит:
- (void)viewWillAppear:(BOOL)animated {
currentOrientation = (UIInterfaceOrientation)[[UIDevice currentDevice]orientation];
if (currentOrientation == UIInterfaceOrientationUnknown) {
currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
}
NSLog(@"Device: %@ OS: %@ Orientation: %@", ([SystemInfo deviceType] == iPad)[email protected]"iPad":@"iPhone",
([SystemInfo operatingSystemIs8OrGreater])[email protected]"8":@"7",
(UIInterfaceOrientationIsPortrait(currentOrientation)[email protected]"portrait":@"landscape"));
NSLog(@"Frame dimensions: width=%d height=%d", (int)self.view.frame.size.width, (int)self.view.frame.size.height);
NSLog(@"Bounds dimensions: width=%d height=%d", (int)self.view.bounds.size.width, (int)self.view.bounds.size.height);
SystemInfo просто немного класса вернуть информацию о системе. Я запускал его на симуляторах iPhone 5 и iPad 2, iOS 7.1 и 8.1, в портретной и альбомной ориентации. Вот что я получил:
iPhone 5 (7,1)
устройства: iPhone OS: 7 Ориентация: портрет
Размеры рамы: ширина = 320 высота = 568
Bounds размеры: ширина = 320 высота = 568
Прибор: iPhone OS: 7 Ориентация: пейзаж
размеры рамы: ширина = 568 высота = 320
Границы размеры: ширина = 568 высота = 320
iPhone 5 (8.1)
Устройство: iPhone OS: 8 Ориентация: портрет
Размеры рамы: ширина = 320 высота = 568
Bounds размеры: ширина = 320 высота = 568
устройства: iPhone OS: 8 Ориентация: пейзаж
Размеры рамы: ширина = 320 высота = 568
Границы размеры: ширина = 320 высота = 568
IPAD 2 (7.1)
Прибор: IPAD ОС: 7 Ориентация: портрет
размеры рамы: ширина = 768 высота = 1024
границы размеры: ширина = 768 высота = 1024
Прибор: IPAD ОС: 7 Ориентация: пейзаж
Размеры рамы: ширина = 1024 высота = 768
Границы размеры: ширина = 1024 высота = 768
IPAD 2 (8.1)
Прибор: IPAD ОС : 8 Ориентация: портрет
размеры рамы: ширина = 320 высота = 568
Границы размеры: ширина = 320 высота = 568
Прибор: IPAD ОС: 8 Ориентация: пейзаж
размеры рамы: ширина = 320 высота = 568
Bounds размеры: ширина = 320 высота = 568
Кажется, как будто IOS 7 помогает мне листать размеры рамки того, что они должны быть, кроме того, что я уже листать их, потому что IOS 8 не , Это действительно не имеет значения, я могу приспособиться. Но у меня есть 4 вопроса:
1) Что делает iOS 6? Я нацелился на него, и у меня больше нет симулятора.
2) Что у iPad 2 (8.1) симулятор? Он дает те же размеры, что и iPhone 5 (8.1). В результате мой выбор цвета составляет около 1/4. Должен ли я просто установить размеры в 1024x768 пейзаж 768x1024 портрет?
3) Что будет делать IOS 9? (Или, может быть, они пропустят 9, как Microsoft, и перейдут прямо к iOS X - ничего себе, если я сейчас смущен, это будет действительно что-то.)
4) Какими будут измерения следующего поколения IPADS? Могу ли я рассчитывать на 1024 и 768? Мне просто пришло в голову запустить код против симулятора Retina iPad, и результаты были точно такими же, как у iPad 2.
Заранее спасибо. Я знаю, что это немного похоже на другие вопросы, но все они казались мне очень расплывчатыми.