Как сделать uitableview в интерфейсе, совместимом с 4-дюймовым iphone5, и более старым iPhone 4/4s?
В Xcode 4.5 есть три варианта:
- Freeform
- Retina 3.5 полный экран
- Retina 4 полный экран
Если я выбрал Retina 4, то в 3,5-дюймовом телефоне он пересекает/переполняет границу экрана
Используя код, я могу установить соответствующий кадр, но зачем использовать конструктор интерфейса?
Как это сделать с помощью Interface Builder?
ИЗМЕНИТЬ
Мой вопрос для iphone 5 retina 4-дюймовый экран. При проверке размера представления, которое имеет строку состояния и навигационную панель, вот значение self.view.frame.size.height/width, frame 320.000000 x 416.000000 в случае, если я выберу произвольную форму /none/retina 3.5
Параметры авторазрешения устанавливаются так, что вид расширяется во всех направлениях, это все стойки и пружины включены.
ИЗМЕНИТЬ Для тестирования в iOS6-симуляторе, если я установил следующее в коде
self.tableView.frame = CGRectMake(0, 0, 320, 546);
self.tableView.bounds = CGRectMake(0, 0, 320, 546);
self.view.frame = CGRectMake(0, 0, 320, 546);
self.view.bounds = CGRectMake(0, 0, 320, 546);
NSLog(@"%2f - %2f", self.view.bounds.size.width, self.view.bounds.size.height);
NSLog(@"%2f - %2f", self.tableView.bounds.size.width, self.tableView.bounds.size.height);
Я получаю следующий вывод
320.000000 - 546.000000
320.000000 - 546.000000
И все строки ниже 480 пикселей сверху не могут быть выбраны, так как "вид" все еще считает, что они находятся за пределами границ.
МОЕ РЕШЕНИЕ
Установите размер Retina 4 для всех экранов, даже в файл xib главного окна. Кажется, он работает нормально даже на iphone 4 после этого. И все строки ниже 480 пикселей теперь можно использовать в iOS 6-симуляторе