我有一个带有表头(不是节头)的 TableView ,它们都根据方向调整大小。在我的实现中,我在 viewWillLayoutSubviews 中为两个 View 设置了框架。
我现在的问题是,虽然两者在旋转后都可以单独正确调整大小,但 tableView 的原点并没有改变以考虑标题的高度变化。这会导致它们之间出现空格或标题覆盖某些单元格。
我的目标是纵向显示,tableview 具有屏幕宽度和长标题。当旋转到横向时,宽度减小到屏幕宽度的三分之一,右对齐,标题较短。此外,我需要所有这些更改的旋转动画流畅且合乎逻辑。
我对 iOS 旋转和动画实践相当陌生,所以如果有人有更好的建议,我将不胜感激。
最佳答案
在您重新分配 tableHeader 之前,表格 View 不会遵守新的标题高度。
类似问题:
当轮换将要或已经完成时,您可以执行以下操作:
- (void)didRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
self.tableView.tableHeaderView = self.tableView.tableHeaderView;
}
事实上,这里也是计算header高度的地方:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
CGRect frame = self.tableView.tableHeaderView.frame;
frame.size.height = UIInterfaceOrientationIsLandscape(toInterfaceOrientation) ? 50 : 150;
self.tableView.tableHeaderView.frame = frame;
self.tableView.tableHeaderView = self.tableView.tableHeaderView;
}
关于ios - UITableView 和 UITableViewHeader 在旋转和调整大小后发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21763421/