Я создаю контроллер табличного представления для приложения для iPad. Этот вид потенциально может отображаться в полноэкранном режиме или в модальном режиме, поэтому размер может отличаться при каждом отображении. В идеале я хотел бы сделать мой код достаточно универсальным, чтобы работать независимо от размера, в котором он отображается. (В качестве академического упражнения я также хотел бы, чтобы код работал и на iPhone, но здесь это не является обязательным требованием.)
Я использую стиль сгруппированного табличного представления. Я хочу встроить UITextField в вид ячейки. Я могу поместить текстовое поле в ячейку ОК (используя cell.AddSubview), но когда я использую сгруппированный стиль, текстовое поле находится в самом левом углу таблицы, а не там, где оно должно быть в белой области.
Я оглянулся (например, на образец UICatalog и ответы здесь), и все решения этой проблемы, кажется, включают жесткое кодирование постоянного смещения x для области границы. Это смещение x составляет около 35 пикселей на iPad, но составляет около 20 пикселей на iPhone.
Мне кажется, что должен быть лучший способ сделать это, но я еще не нашел его. Я пробовал смотреть на прямоугольники cell.Bounds, cell.Frame, cell.ContentView.Bounds и cell.ContentView.Frame - ни у одного из них нет «фактической» области содержимого сгруппированной ячейки.
У кого-нибудь есть другое предложение, или мне нужно жестко закодировать значение?
Спасибо