ios - 我的 UIScrollView(包含一些 UIControl)在 iOS 8 中不再滚动

标签 ios iphone uiview uiscrollview touches

在我的应用程序中,我制作了一个日历,它基本上包含一个包含每天一些单元格(自定义 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/

相关文章:

iphone - MKStorekit耗材配置MKStoreKitConfigs.plist iphone

ios - iOS7 中的 View 移动到导航栏上方,但在 iOS6 中工作正常

ios - scrollView.dragging == true 在 scrollViewDidEndDragging 之后?

javascript - 关于 $(document).bind() 的问题

通过 Testflight 存档和安装应用程序时,iOS Firebase crashlytics 仪表板不会显示崩溃

iphone - 如何清除代码中的 NSLog 输出?

ios - 访问uiviews的 subview 可以吗

ios - UIKeyboardWillShow/WillHide 通知,如何知道这些通知何时发送给已注册的观察者

iOS - 下载多张图片时超时异常

ios - 页面 View Controller 中的页面突然下拉 Action