gpt4 book ai didi

ios - UITableView 上的 UISearchBar 奇怪的偏移问题

转载 作者:技术小花猫 更新时间:2023-10-29 11:00:45 25 4
gpt4 key购买 nike

我有一个 UITableView,它有一个 UISearchBar subview 。这一切都在 UIViewController 的 View 以及一些其他 subview (标签、文本字段等)上。

表格的搜索栏和内容偏移行为很奇怪,但这似乎取决于这些 View 添加到 xib 中主视图的顺序。为了测试,我创建了一个仅包含表/搜索和标签的示例项目,结果是一样的。在标签之后添加表格时,一切正常:

设置:

table added after label

正确和预期的结果:

Proper expected result

但是,如果我只是更改我的 2 个 subview 在主视图上的顺序(也就是在标签之前添加表格),那么奇怪的事情就会开始发生。

明显错误的设置:

Table added before label

搜索栏奇怪的偏移:

wtf is this?!?!

我没有改变任何其他东西,那么为什么 Xcode 似乎关心这些 subview 添加到主视图的顺序?如果我在“坏”表设置上向上滚动,搜索栏会立即在其顶部边缘消失,但表的内容将继续向上滚动,直到它到达 xib 中设置的框架的顶部。向下滚动,搜索栏不会重新出现,直到奇怪的降低位置。这是在 Xcode 5.1.1 中,而不是新的测试版。无论是否启用自动布局,结果都是一样的。

知道为什么会这样吗?这是一个错误,还是我遗漏了什么? (我没有发布任何代码,因为我所做的只是设置部分、行的数量,并在单元格上设置文本。不要弄乱内容插入、偏移量等任何内容。我从应用程序委托(delegate)加载 View 为导航 Controller 的根)

最佳答案

发生这种情况是因为 UIViewController 的属性名为 automaticallyAdjustsScrollViewInsets

With iOS 7, UIViewControllers have a property called automaticallyAdjustsScrollViewInsets, and it defaults to YES. If you have a scroll view that is either the root view of your view controller (such as with a UITableViewController) or the subview at index 0, then that property will adjust both the contentInset and the scrollIndicatorInsets. This will allow your scroll view to start its content and scroll indicators below the navigation bar (if your view controller is in a navigation controller).

来自 Big Nerd Ranch

如果您正在使用 Storyboard,您可以通过选择 View Controller 并在属性检查器中取消选择 Adjust scroll view insets 来更改它。

这是来自 apple documentation 的描述:

Default value is YES, which allows the view controller to adjust its scroll view insets in response to the screen areas consumed by the status bar, navigation bar, and toolbar or tab bar. Set to NO if you want to manage scroll view inset adjustments yourself, such as when there is more than one scroll view in the view hierarchy.

关于ios - UITableView 上的 UISearchBar 奇怪的偏移问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24335497/

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