Ширина contentView UITableViewCell с данным типом аксессуара - PullRequest
23 голосов
/ 23 мая 2009

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 16 ноября 2009

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

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

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

0 голосов
/ 24 мая 2009

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

0 голосов
/ 24 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...