gpt4 book ai didi

iphone - (iPhone/iOS) UISearchBar 范围按钮覆盖 UITableView 的第一行

转载 作者:行者123 更新时间:2023-12-03 19:44:33 24 4
gpt4 key购买 nike

我知道这个问题之前已经被问过,但我还没有找到真正的解决方案。我有一个 UITableView,其 UISearchBar 作为其 tableHeaderView。 每当范围按钮出现时,它们都会覆盖 UITableView< 的第一行

我尝试使用 UITableView.contentOffsetUITableView 偏移范围按钮的高度,并且直到用户点击 UITableView 为止都有效。 code> 或滚动它,此时 UITableView 跳回其原始偏移量。

我能做的最好的事情就是将 UISearchBar 设置为 View 中的单独项目,并简单地动态调整 UITableView 的大小以在以下情况下显示或隐藏它:用户点击搜索按钮。唯一的问题是没有动画,所以过渡很尖锐。

更新:我通过实现 UISearchDisplayController 解决了这个问题,因为这是最干净、最容易使用的解决方案。 UISearchDisplayController 自动显示/隐藏范围按钮,并相应地向下移动 UITableView。我一开始没有这样做,因为我希望 UITableView 保持可见,而不是最初被 UISearchDisplayController 遮蔽,但是我逐渐意识到遮蔽不妨碍任何功能;如果用户想继续按原样查看 UITableView,就不会启动搜索。

最佳答案

想法:

  • tableHeaderView 设置为以 UISearchBar 作为其 subview 的 UIView,并调整该 UIView 的大小code> 当范围按钮出现时。 UITableView 希望能够响应该 View 更改其框架。

  • UISearchBar 设置为 UITableView 第一个单元格的内容,并使用 (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation: (UITableViewRowAnimation) 范围按钮隐藏或显示时的动画。返回正确的高度以使单元格动画到其新高度。

或者您可以使用您描述的方法(UISearchBar 作为 View 中的单独项目),并使用动画 block 来设置过渡动画,使其不那么尖锐。

[UIView animateWithDuration:1.0 animations:^
{
//change table view frame here
}];

关于iphone - (iPhone/iOS) UISearchBar 范围按钮覆盖 UITableView 的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8040830/

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