【发布时间】:2012-03-01 20:06:47
【问题描述】:
我有一个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;
}
它正确地扩展了视图框架并缩小了 tableView 框架。但是,它无法扩展原始UIControl的触摸接收区域,所以我只能通过按原始框架所在的位置来折叠它。
我该如何解决这个问题?
编辑:或者,我会接受一个很好地解释为什么我不能解决问题的答案,或者至少不能安全地解决它。
编辑 1:更清楚地说,headerView 不是 tableView 标题视图。它只是位于表格顶部的视图,恰好被称为headerView。 headerView 和 tableView 都是跨越可用窗口的主 UIView 的子视图。
【问题讨论】:
标签: iphone objective-c uiview uicontrol cgrect