UITableView dequeueReusableCellWithIdentifier уникален или нет? - PullRequest
0 голосов
/ 01 марта 2012

Это может звучать как вопрос новичка, однако я новичок в разработке для iOS,

Я хочу понять, когда мне следует использовать уникальный идентификатор для ячеек, а когда нет для

- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier

На самом деле во многих местах я встречал фрагменты кода, где идентификатор не был уникальным.

Но в своей практике я использовал уникальный идентификатор, чтобы сохранить порядок UITableViewCells, иначе порядок был смешанным, когдаЯ прокрутил UITableView вверх и вниз.

Так что, пожалуйста, помогите мне понять концепцию многократно используемых ячеек, разве у каждой ячейки нет уникального идентификатора?

Заранее спасибо,

Ответы [ 3 ]

2 голосов
/ 01 марта 2012

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

При использовании идентификатора, подумайте об этом с точки зренияваша ячейка может содержать данные любых ранее отображенных данных ячейки, поэтому вам нужно убедиться, что ваш код перезаписывает эти данные, в самом простом случае cell.textLabel.text.

0 голосов
/ 22 мая 2013

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

0 голосов
/ 02 марта 2012

Мне кажется, у меня есть ответ на мой вопрос. Благодаря вопросу Аарона. Я всегда пытаюсь инициализировать каждую ячейку только один раз в одном и том же представлении (конечно, если оно не редактируется в этом представлении). Я делаю это для повышения производительности и плавной прокрутки табличного представления. Разница в том, что теперь я знаю, как это работает. Если я правильно понял, идентификатор ячейки заставляет ячейки оставаться уникальными, и таким образом таблица делает что-то вроде кэширования этой информации и затем помещает ее в нужное место (из-за уникальных идентификаторов).

Спасибо, ребята!

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