У меня есть пользовательский подкласс UIView, который я пытаюсь использовать в качестве заголовка для одного из моих разделенных разделов таблицы. Я сохраняю экземпляр этого представления в tableViewController и использую его для возврата высоты для раздела заголовка, а также самого представления. проблема в том, что каким-то образом переменная экземпляра изменяется с UIView на CALayer в середине вызова reloadData, который вызывает сбой, поскольку экземпляр имеет специальный метод для возврата ожидаемой высоты. это код, который выходит из строя:Пользовательские заголовки разделов заголовка UITableView ломаются
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
{
return [self.dataHeader frameHeight];
}
return 0.0f;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (section == 0)
{
return self.dataHeader;
}
return nil;
}
я поставил точку останова на первой возвращение в, если блок метода heightForHeaderInSection, и он бьет его в 4 раза; первые три возвращают dataHeader успешно, в то время как четвертый раз показывает, что это CALayer, и сбой с исключением doesNotRecognizeSelector (у моего tableview есть 2 раздела, если это имеет значение). Есть ли причина, почему это происходит, и есть ли способ остановить это?
Вы правы; это была проблема. Я фактически оставил автореферат от рефактора. Я попробую это завтра, когда у меня появится возможность увидеть, исправляет ли это это :). – Kevlar