在我的应用程序中,我制作了一个日历,基本上包含一个UIScrollView,每天包含一些单元格(自定义UIControl),顶部标题包含一些标签(Mon,Tue,Wed ...),显然还有一些分隔符(厚度为1px的UIView。
在iOS 7上一切正常,我可以通过按下它们来选择单元格(我使用UIControlEventTouchUpInside事件来选择它们),并拖动分页滚动视图以显示上个月或下个月。
但是,由于我已经切换到iOS 8,并下载了Xcode 6,它已经不再适用了。 实际上我仍然可以选择单元格,但是滚动视图不会滚动(除非我从标题或分隔符拖动它,这是基本的UIView,没有任何触摸事件管理)。
我开始从一个单元格中拖动滚动视图,它只是保持固定。
我没有改变任何事情,所以我不明白为什么它不再起作用......
请帮帮我!! :)
非常感谢
PS:我是法国人,抱歉我的英语不好答案 0 :(得分:4)
据我所知,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
返回值:YES取消进一步触摸要查看的消息,NO取消 视图继续接收这些消息。默认返回值是 如果view不是UIControl对象,则为YES;否则,它返回NO。