У меня есть два пользовательских UITableViewCell's. Назовем их cellA и cellB. Они очень похожи. Оба имеют название, подзаголовок, и image вид расположен в том же месте. Тем не менее, cellB также имеет дополнительную отметку .Как я могу использовать два разных пользовательских UITableViewCell в UITableView?
Теперь каждая из этих пользовательских ячеек находится в своих собственных файлах nib.
1) Чтобы зарегистрировать их оба, сделаете ли вы следующий код или оба они будут помещены в один и тот же файл nib?
UINib *cellANib = [UINib nibWithNibName:@"CellACell" bundle:nil];
[self.tableView registerNib:cellANib forCellReuseIdentifier:@"ACell"];
UINib *cellBNib = [UINib nibWithNibName:@"CellBCell" bundle:nil];
[self.tableView registerNib:cellBNib forCellReuseIdentifier:@"BCell"];
2) В cellForRowAtIndexPath, я буду использовать либо Cella или CellB на основе данных. Должен ли я разблокировать весь метод с помощью одного огромного оператора if или как я могу позвонить cell.title.text =
, не отбрасывая ячейку в выражении if. Как ...
if (data.type == DATA_TYPE_A) {
((CellACell *)cell).title.text = data.title;
}
else {
((CellBCell *)cell).title.text = data.title;
}
Как я могу избежать такого беспорядка? Могу ли я заставить обе ячейки расширять класс типа интерфейса или что-то в этом роде, поэтому мне не нужно бросать или разворачивать весь метод с помощью огромного оператора if?
EDIT:
Я думаю, что "сокрытие метки", которые не используются бы лучше. Как я могу их скрыть? Я упростил этот вопрос, но у меня есть 4 взгляда по горизонтали. [--- [1] - [2 ---- ----] - [3] - [4 ---- ----] ---]. У меня есть метки 1 и 3. 1 фиксируется на ведущем контроле. 3 фиксируется центр X на что-то еще на ячейке. Теперь для A-Data нужно использовать метки 1/2. B-Data необходимо использовать 1/2/3/4. Для данных A я хотел бы скрыть метки 3 и 4, а 2 - вправо, где 4 заканчивается. Как я могу добиться этого скрытия меток 3 и 4?
Я добавил короткий EDIT к своему оригинальному сообщению. Не могли бы вы это проверить и объяснить, как я могу скрыть определенные ярлыки? –
@chrisP, вы не можете сделать это (легко в любом случае), скрывая метки; скрытие не приводит к тому, что ограничения уходят. Я бы просто пошел с двумя разными версиями клеточного подхода. – rdelmar