2011-12-13 3 views
3

У меня есть 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, а не выбором по умолчанию (подробное раскрытие и т. Д.)?

+1

Ваш код выглядит нормально, вы отлаживали его, чтобы узнать, когда-либо в секции когда-либо получалось 0 или 1? – Krizz

+0

Да, он получает 0 и 1 ... как я сказал в редактировании, проблема в том, что нет аксессуаров. Если я изменил вид аксессуара ячейки для подробного раскрытия, например, UIStepper становится видимым (частично, он находится за кнопкой раскрытия подробностей). –

+0

Добавьте его в представление содержимого, а не в вид аксессуаров. –

ответ

1

Я могу добавить UIStepper в ячейку прототипа в моей IB без каких-либо проблем.

Убедитесь, чтобы не забыть о настройке Style в Custom в «Атрибуты инспектора» клетки-прототипа в вашем IB.

Смежные вопросы