2016-09-21 4 views
0

У меня есть ячейка в UITableView. Ячейка имеет класс UITableViewCell. В этом классе я программно добавляю несколько кнопок.Проблема с программно добавленными кнопками

Примечание: ячейка расположена в самом конце стола.

Вопрос: Если я использую симулятор iphone 5>, кнопки будут показаны. Но если я использую симулятор iphone 6+>, кнопки НЕ будут показаны.

Примечание: когда я открываю его на iphone 5 Мне нужно прокрутить, чтобы увидеть эту конкретную ячейку. на iphone 6+ мне не нужно прокручивать, ячейка видна сразу.

Так что я думаю, что проблема здесь. Возможно, это место, где я добавляю свои кнопки.

Где я могу назвать метод, который устанавливает кнопки? Или как я могу решить эту проблему?

+0

Кнопка добавления Программно по методу "cellForRowAtIndexPath" и добавить в ячейку –

+8

Вам нужно показать код. Где вы его добавляете? Убираете ли вы ячейку (тем более, что они используются повторно)? – Larme

+2

[Когда вы задаете вопрос о проблеме, вызванной вашим кодом, вы получите гораздо лучшие ответы, если вы предоставите код, который люди могут использовать для воспроизведения проблемы] (http://stackoverflow.com/help/mcve) – swiftBoy

ответ

0

TL; Если у вас разные типы ячеек в представлении таблицы, вы должны убедиться, что у них разные идентификаторы.

Пояснение:

Таблица клетка повторно использована в пределах UITableView, и при первом отображении таблицы не будет иметь никаких повторно используемые клетки еще. Он отображает ячейки, вызывая его источник данных через протокол UITableViewDataSource.

Вещь, предоставляющая ячейки, сначала спросит представление таблицы, есть ли у нее какие-либо повторно используемые ячейки (определенного типа), прежде чем создавать новую. Способ, которым он определяет конкретный тип, относится к reuseIdentifier в ячейке таблицы.

Итак, если у вас есть два разных класса ячейки таблицы, но они имеют один и тот же reuseIdentifier, вы иногда получаете один класс, а иногда и другой - если вы получаете один без кнопок, когда вы ожидаете кнопки, тогда это будет быть проблемой!

Ответ заключается в том, чтобы убедиться, что у ваших разных типов ячеек есть уникальный reuseIdentifier.

Смежные вопросы