У меня есть headerView
, который может расширяться и разрушаться при нажатии. Это состояние по умолчанию свернуто.
Я использую следующий код для расширения headerView
.
if (!self.headerViewIsExpanded) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[self.collapsedHeaderView removeFromSuperview];
self.headerView.frame = self.expandedHeaderView.frame;
[self.headerView addSubview:self.expandedHeaderView];
self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y + offset, self.tableView.frame.size.width, self.tableView.frame.size.height - offset);
[UIView commitAnimations];
self.headerViewIsExpanded = YES;
}
Правильно расширяет рамку вида и уменьшает рамку таблицы. Тем не менее, он не может расширить область, полученную касаниями исходного UIControl, поэтому я могу свернуть его только нажатием там, где была оригинальная рамка.
Как я могу решить эту проблему?
РЕДАКТИРОВАТЬ: В качестве альтернативы, я бы принял ответ с хорошим объяснением, почему я не могу решить проблему, или, по крайней мере, не решить ее безопасно.
РЕДАКТИРОВАТЬ 1: Для большей ясности, headerView
НЕ является представлением tableView
заголовка. Это просто вид сверху таблицы, который называется headerView
. И headerView
, и tableView
являются подпредставлениями основного UIView
, охватывающего доступное окно.