viewDidLoad 中的 iOS 7 setContentOffset 重置为 0

标签 ios iphone objective-c uikit

我在表格 View 的顶部附加了一个UISearchBar。这个想法是,当您从顶部向下拖动时,您可以进行搜索。

因此,在 iOS 6 下,我附加了搜索栏,然后在 viewDidLoad 中,我将“setContentOffset”设置为 CGPointMake( 0, searchBar.frame.size.height ),将内容偏移设置为 44。

这对我来说非常有效。

但是 iOS 7 中的行为并不相同。

在 viewDidLoad 中执行 setContentOffset 后,我​​看到一个对 _notifyDidScroll 的内部调用,它将内容偏移设置回 0(在 viewDidLoad 完成后)。有趣的是我的搜索栏不在-44。

如何使 iOS6 和 iOS7 的行为方式相同?我不在乎 iOS6 是否开始执行此 notificationDidScroll 还是 iOS 7 停止执行此操作,但我希望两个版本之间保持一致性!

目前我不得不使用一个糟糕的解决方案,在 iOS 7 和 iOS6 上执行不同的任务。

最佳答案

我认为您需要在 ViewController 中禁用 UnderTopBars。您可以在 UIViewController 的属性中的 Storyboard或 .xib 中执行此操作。

编辑:

enter image description here

希望对您有所帮助。

关于viewDidLoad 中的 iOS 7 setContentOffset 重置为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21829339/

相关文章:

ios - 如何在 UIDatePicker 上设置自定义日期显示?

ios - 计算 NSString 中 2 个单词之间的所有字符

iphone - 如何使用 iPhone SDK 从 SQLite 数据库中获取原始特殊字符?

iphone - 制作更薄的 UITabBar

ios - 在 Xcode 中订购代码片段

ios - 无法将 ZBar SDK 与 Xcode 5 链接

iphone - 访问 plist 值返回 null

iphone - UIWebView - 创建自定义上下文菜单?

iphone - 如何使用GPUImage框架复制CIRandomGenerator

objective-c - 使用适用于 iOS 的 Google map SDK 时出现 "Failed to make complete framebuffer"错误