Точно так же, как вам потребуется один экземпляр UIButton для каждой видимой кнопки в вашем представлении, вам понадобится один экземпляр вашей ячейки для каждой видимой строки.
Обычный шаблон для управления этим - запросить у таблицы ранее созданную ранее ячейку, которая больше не нужна (dequeueReusableCellWithIdentifier:
), а затем вернуть эту ячейку. Если в табличном представлении нет многократно используемых ячеек, вам необходимо создать новую ячейку из файла пера.
В Интернете есть много примеров, и вы также можете найти их здесь, в SO, например, в этот ответ .
Я бы порекомендовал прочитать в Apple Руководство по программированию TableView , которое также содержит раздел по загрузке ячеек из перьев .
UPDATE:
Попытка объяснить TableView и повторно использовать ячейки другим способом.
Допустим, у нас есть большая галерея с
старые картины. Тысячи картин.
Галерея имеет только одну выставочную комнату,
хотя, и у него есть стены всего за десять
картины. Менеджер галереи должен
переключать картины время от времени, когда
посетители скучают и хотят видеть
несколько новых картин.
Каждая показанная картина нуждается в
Рамка. Без рамки не может быть
положить на стену. Рамки дороги
сделать и занять много места.
рамный парень хочет успеть ни
деньги на строительство тысяч кадров
необходимо.
Он узнает, что хочет быть нуждающимся
рамки для всех картин, которые
в данный момент не отображается Он бы только
нужно десять кадров для текущего
выставленные картины. Когда галерея
менеджер снимает картину,
Frame Maker сохраняет кадр, и когда
менеджер галереи выставил новый
рисует и просит создателя кадра
рамка для нее, производитель рам
возвращает кадр из предыдущего
картина снова.
Однажды
необходимо-пространство-между-картин-правила
меняется без уважительной причины.
менеджер галереи может поставить два
больше фотографий в выставочном зале. Он
выбирает две картины из магазина
комната, и просит создателя кадра для
кадры. У производителя рам нет запасных
кадры, и нужно сделать два новых
кадры.
Теперь предположим, что галерея представляет собой TableView, а все рисунки представляют собой строки данных. Дисплейная комната с местом для десяти видимых картин, это экран, с местом для десяти видимых рядов. Каждая видимая строка будет нуждаться в ячейке, точно так же, как каждая отображаемая картина будет нуждаться в рамке.
В конце концов, вам не нужно заботиться об экономии ресурсов путем повторного использования одной ячейки. Это ответственность TableViews. Это деталь реализации TableView, сколько ячеек необходимо и как оно используется. Протокол определяет, как вы можете запросить у TableView многократно используемую ячейку, и в документации указано, что вы должны это сделать. Этого должно быть достаточно. Демонстрационные проекты показывают, что TableView может управлять очень большими объемами данных. Если ваши проекты борются с производительностью из-за создания 10-20 ячеек из nib, у вас, вероятно, есть проблемы с файлом nib или чем-то еще. Тем не менее, есть некоторые дискуссии о производительности загрузки с nib по сравнению со сборкой ячеек в коде . Это может быть вам интересно.