У меня есть UITableView, но я бы хотел, чтобы ячейки выглядели по-разному в зависимости от раздела. В частности, я хотел бы, чтобы раздел 0 и один имели UIStepper в правой части ячейки.Несколько прототипов в UITableView?
В IB UITableView имеет две ячейки прототипа. В первом я добавил UIStepper, а второй - по умолчанию (пустое). Я дал stepper UITableViewCell идентификатор «StepperCell» (в IB), а не-шаговую ячейку - идентификатор «Ячейка».
Теперь, в cellForRowAtIndexPath
, я проверяю номер раздела, а затем применять соответствующий идентификатор повторного использования следующим образом:
static NSString *stepper = @"StepperCell";
static NSString *normal = @"Cell";
NSString *identifier = normal;
NSInteger section = [indexPath section];
if (section == 0 || section == 1)
{
identifier = stepper;
}
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier: identifier];
Я думал, что это может работать, как я намереваюсь его, но он оставляет все клетки, пустая ячейка по умолчанию. Есть ли способ сделать то, что я описал, без программного добавления UIStepper?
Редактировать - похоже, что UIStepper не отображается, поскольку для аксессуаров в IB установлено значение None. Есть ли способ сделать UIStepper моим аксессуаром в IB, а не выбором по умолчанию (подробное раскрытие и т. Д.)?
Ваш код выглядит нормально, вы отлаживали его, чтобы узнать, когда-либо в секции когда-либо получалось 0 или 1? – Krizz
Да, он получает 0 и 1 ... как я сказал в редактировании, проблема в том, что нет аксессуаров. Если я изменил вид аксессуара ячейки для подробного раскрытия, например, UIStepper становится видимым (частично, он находится за кнопкой раскрытия подробностей). –
Добавьте его в представление содержимого, а не в вид аксессуаров. –