Подкласс UITableViewCell - как добавить кнопку в несколько строк - PullRequest
0 голосов
/ 13 мая 2011

У меня есть подкласс UITableViewCell, который имеет 3 метки и размеры и размещает метки в зависимости от длины текста.При выборе все строки выполняют одну и ту же функцию.Мне бы хотелось, чтобы с некоторыми строками также был связан подробный вид.Поэтому я хочу добавить UIButton в несколько строк, но я не уверен, как это сделать.

Должен ли я создать элемент UIButton подкласса UITVCell и в layoutSubviews, если кнопка не равна нулю, могу ли я освободить место для нее?

Как будет выглядеть cellForRowAtIndexPath?Нужны ли мне два идентификатора для повторного использования?Один для кнопки и один для кнопки нет?Или просто создайте кнопку, и ячейки с кнопками автоматически обнаружат кнопку в layoutSubviews и освободят место для нее?

Я не могу найти в Интернете примеров того, как кто-то делает это без использования XIB.

РЕДАКТИРОВАТЬ - поэтому я добавил кнопку раскрытия подробностей, как показано ниже, я могу обнаружить, что в моей камере естьaccessoryType, но ширина и высота accessoryView - это мусор. Мне нужны ширина и высота, потому что сейчас аксессуар находится в верхней части моего текста строки, так как я не учитываю его в коде layoutSubviews ..

// CustomTableViewCell.m:
- (void)layoutSubviews {
    // I need a width / height here so I can accomodate the accessory button.
    if ( self.accessoryType != UITableViewCellAccessoryNone ) {
        NSLog(@"accessory! %f %f",self.accessoryView.frame.size.width, self.accessoryView.frame.size.height);
    }
}

1 Ответ

2 голосов
/ 13 мая 2011

Вам не нужно добавлять UIB-кнопку к строкам, которые имеют подробный вид - просто позвольте им иметь кнопку раскрытия (примечание: кнопка, а не индикатор!). При нажатии кнопки раскрытия обычно отображается подробный вид для этой ячейки.

Чтобы включить кнопку раскрытия для определенной ячейки, выполните в методе cellForRowAtIndexPath следующее:

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

Подробнее здесь:

В чем разница между кнопкой раскрытия подробностей и индикатором раскрытия?

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