作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现在呈现 UIPopoverController 时,并非呈现 View 中的所有控件都被禁用。具体来说,导航栏按钮(例如“后退”)仍然可选。我认为这是一个缺陷 - 它允许弹出窗口保留在屏幕上,而 View 堆栈在其后面弹出。
哦,好吧,至少可以在演示后立即使用 self.aboutPopoverController.passthroughViews = nil
来纠正这个问题。
但这不会禁用状态栏,状态栏通常设置为将 View 内容滚动到顶部。
最终结果是能够呈现弹出窗口,然后(在后台) ScrollView ,以便弹出窗口上的小箭头/选项卡不再与原始触摸点对齐。
有人能解释一下这种行为吗?这是一个功能还是一个错误?有什么解决方法吗?
最佳答案
一个简单的解决方法可能如下:
在显示 UIPopoverController
之前,将 UIScrollView
的属性 scrollsToTop
设置为 NO
。这样,当用户点击状态栏时,您的 ScrollView 将不会滚动。
完成弹出窗口后,您可以重新启用scrollsToTop 功能。
这是 UIScrollView documentation :
scrollsToTop
A Boolean value that controls whether the scroll-to-top gesture is enabled.
@property(nonatomic) BOOL scrollsToTop
Discussion
The scroll-to-top gesture is a tap on the status bar. When a user makes this gesture,
the system asks the scroll view closest to the status bar to scroll to the top.
If that scroll view has scrollsToTop set to NO, its delegate returns NO from
scrollViewShouldScrollToTop:, or the content is already at the top, nothing happens.
希望这对您有所帮助!
关于ios - UIPopoverController 应防止通过状态栏滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19460297/
我是一名优秀的程序员,十分优秀!