Подтвердить что ты не робот

Ширина содержимого UITableViewCell с заданным типом аксессуара

На iPhone, как вы определяете ширину представления содержимого ячейки таблицы, когда она показывает определенный вид аксессуаров (индикатор раскрытия и т.д.)?

Мне нужно это, чтобы вычислить правильную высоту ячейки для ячеек, которые содержат обертку, текст переменной длины. Но когда делегат представления таблицы запрашивает высоту ячейки, у нее фактически нет фактического экземпляра ячейки, поэтому он не может просто запросить границы представления содержимого напрямую.

Я могу с легкостью скорректировать 20-пиксельный запас справа, который, по-видимому, является точным для простого представления таблицы таблиц в портретной ориентации с индикатором раскрытия, но предпочел бы сделать это правильно, чтобы он продолжал работать если Apple решит изменить маржу.

(Это связано с этим вопросом.)

4b9b3361

Ответ 1

Лично я просто хотел бы скомпоновать значения - проще, и все будет прервано предсказуемым способом.

Но если бы я сделал это программно, я бы создал UITableViewCell, настроил свойства редактирования/аксессуары, которые нужно измерить, а затем спросите, насколько велик его контент-просмотр.

Конечно, я бы, вероятно, сильно кешировал это - делая выделение при запросе UITableView, спрашивает у вас звуки информации о высоте, как будто это было бы медленно (сначала проверьте с помощью профайлера, хотя, как всегда).

Ответ 2

У меня был бы подкласс UITableViewCell, который содержит все его подэлементы. Вы можете связать кадр с определенными элементами, когда ячейка входит и существует режим редактирования. Это хороший пример этого в руководстве по программированию таблиц Apple Table в разделе о создании пользовательской ячейки представления таблицы.

Ответ 3

Я считаю, что свойство contentView UITableViewCell - это представление, которое содержит ваши метки и т.д., поэтому ширина этого должна быть вашим доступным размером для использования.