Как сделать uitableview в конструкторе интерфейсов совместимым с 4-дюймовым iphone5 и более старыми iPhone 4/4s?
В Xcode 4.5 есть три варианта:
- Свободная форма
- Полноэкранный режим Retina 3.5
- Ретина 4 на весь экран
Если я выбрал Retina 4, то в 3,5-дюймовом телефоне он выходит за границы экрана
Используя код, я могу установить рамку соответствующим образом, но тогда какой смысл использовать конструктор интерфейсов?
Как это сделать с помощью Interface Builder?
ИЗМЕНИТЬ
Мой вопрос касается экрана iPhone 5 Retina 4 дюйма. При проверке размера представления, которое имеет строку состояния и панель навигации, вот значение self.view.frame.size.height/width, кадр 320,000000 x 416,000000, если я выберу freeform/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.