Как сделать UITableViewCell с различными подпредставлениями повторно используемыми?

У меня есть UITableView , в котором я, естественно, отображаю UITableViewCells , которые относятся к одному классу, назовем его MyCell . Итак, у меня есть один MyCell.xib , один MyCell.h и один MyCell.m .

К сожалению, эти ячейки содержат одно подпредставление, в котором различное содержание, например подвид поезда и подвид вагона . Итак, если UITableView нуждается в новой ячейке, это всегда MyCell , но иногда он содержит подпредставление поезда, а иногда подвид вагона.

А вот и моя проблема : Как сделать MyCell многоразовым? Сама ячейка может быть повторно использована по назначению (в .xib я определил ее идентификатор), но ее подпредставление необходимо создавать снова и снова для каждой ячейки. Моя первая идея заключалась в том, чтобы изменить идентификатор MyCell в зависимости от его содержимого, но, к сожалению, reuseIdentifier нельзя изменить во время выполнения. s всегда MyCell , но иногда он содержит подпредставление поезда, а иногда подвид вагона.

Итак, вот моя проблема: как сделать MyCell повторно используемым? Сама ячейка может использоваться повторно, как и предполагалось (в .xib я определил ее идентификатор), но ее подпредставление необходимо создавать снова и снова для каждой ячейки. Моя первая идея заключалась в том, чтобы изменить идентификатор MyCell в зависимости от его содержимого, но, к сожалению, reuseIdentifier нельзя изменить во время выполнения. s всегда MyCell , но иногда он содержит подпредставление поезда, а иногда подвид вагона.

Итак, вот моя проблема: как сделать MyCell повторно используемым? Сама ячейка может быть повторно использована по назначению (в .xib я определил ее идентификатор), но ее подпредставление необходимо создавать снова и снова для каждой ячейки. Моя первая идея заключалась в том, чтобы изменить идентификатор MyCell в зависимости от его содержимого, но, к сожалению, reuseIdentifier нельзя изменить во время выполнения. Однако я мог бы реализовать свой собственный - (NSString *) reuseIdentifier {} , который, я думаю, сработает, хотя я бы не считал его отличным стилем. Есть ли лучший способ сделать это?

Заранее большое спасибо!

РЕДАКТИРОВАТЬ: Я понимаю, что мне нужно добавить, что вложенные представления хранятся в своих собственных классах / xib, чтобы их код был разделен.

5
задан Phlibbo 21 April 2011 в 16:45
поделиться