Могу ли я загрузить UITableViewCell напрямую из XIB с определенным классом размеров или коллекцией признаков?
Я пытаюсь сделать следующее в моем приложении для iOS:
- Вставить
UITableView
в родительский вид прокрутки; у представления таблицы будет развернут фрейм, чтобы показать все его содержимое (мне нужно сделать это, потому что данные представления таблицы являются небольшим компонентом гораздо большего и более сложного экрана, и я не хочу использовать вложенную прокрутку) - У меня разные макеты для iPhone и iPad, поэтому в ячейках этого табличного представления используются классы размеров, определенные в ячейке табличного представления xib.
- Поскольку я хочу, чтобы размер содержимого табличного представления был точным, я не думаю, что смогу использовать
UITableViewAutomaticDimenstion
как высоту, так я реализуюtableView:heightForRowAtIndexPath:
и загрузить экземпляр моей ячейки табличного представления непосредственно из пера и сохранить это представление как свойство, с помощью которого я могу выяснить, какой высоты должна быть ячейка в соответствии с автопоставкой.
Моя проблема связана здесь; когда я загружаю ячейку непосредственно из пера, на iPad ячейка использует ограничения и компоновку в классе размера "Любой", как это определено в перо, что неверно, поскольку макет iPad использует класс обычной ширины только в моем перо. Это приводит к тому, что в моем случае высота ячеек табличного представления неверна и слишком велика.
Что мне нужно знать, так это то, есть ли способ принудительно собрать коллекцию признаков в загружаемой ячейке, чтобы на каждом типе устройства использовались надлежащие ограничения для моих представлений. Я не могу найти ничего в документах, что позволяет это прямо в UIView
с, только в UIViewController
с, и я не заинтересован в проведении за кадром UITableViewCell
в случайном закадровом UIViewController
если я могу помочь Есть идеи?
1 ответ
После того, как я написал это, я обнаружил вопрос: вне экрана UITableViewCells (для расчета размера), не относящийся к классу размера? который, кажется, задает аналогичную вещь, и ответ там сработал для меня (добавьте ячейку представления вне экрана в качестве подпредставления представления таблицы или какое-либо другое представление, которое обеспечивает среду черты). Это не красиво, но, кажется, сработало.