在我的应用程序中,我制作了一个日历,它基本上包含一个包含每天一些单元格(自定义 UIControl)的 UIScrollView,一个包含一些标签(Mon、Tue、Wed...)的顶部标题,显然还有一些分隔符( 1px 厚度的 UIView)。
在 iOS 7 上一切正常,我可以通过按下单元格来选择它们(我使用 UIControlEventTouchUpInside 事件来选择它们),并拖动分页 ScrollView 以显示上个月或下个月。
但自从我切换到 iOS 8 并下载了 Xcode 6 后,它就不再工作了。 事实上,我仍然可以选择单元格,但 ScrollView 不会滚动(除非我将它从标题或分隔符中拖动,它们是没有任何触摸事件管理的基本 UIView)。
如果我开始从单元格中拖动 ScrollView ,它就会保持不动。
我没有改变任何东西,所以我不明白为什么它不再起作用了......
请帮帮我!! :)
非常感谢
PS:我是法国人,抱歉我的英语不好
最佳答案
编辑:iOS 8.1 的行为似乎与 iOS 8.0 之前的行为相似,因此 Apple 可能已经“修复”了它。所以下面的答案不再需要了。
据我所知,iOS 8 中发生了变化,这影响了 UIScrollview 的处理。在 UIControl 的情况下,UIScrollView 不再跟踪内容触摸。
我做的一件事是继承 UIScrollView 并覆盖 touchesShouldCancelInContentView
- (BOOL) touchesShouldCancelInContentView:(UIView *)view {
return YES;
}
另见 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScrollView_Class/index.html
Return Value: YES to cancel further touch messages to view, NO to have view continue to receive those messages. The default returned value is YES if view is not a UIControl object; otherwise, it returns NO.
关于ios - 我的 UIScrollView(包含一些 UIControl)在 iOS 8 中不再滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25958313/