gpt4 book ai didi

ios - UITableView 和 UITableViewHeader 在旋转和调整大小后发生冲突

转载 作者:可可西里 更新时间:2023-11-01 06:08:42 27 4
gpt4 key购买 nike

我有一个带有表头(不是节头)的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com