2014-09-21 54 views
4

在我的应用程序中,我做了一个日历,基本上包含每天包含一些单元格(自定义UIControl)的UIScrollView,顶部标题包含一些标签(星期一,星期二,星期三......),显然还有一些分隔符(1px厚度的UIView)。我的UIScrollView(包含一些UIControls)不再滚动在iOS 8中

在iOS 7上一切正常,我可以通过按下它们来选择单元格(我使用UIControlEventTouchUpInside事件来选择它们),并拖动分页滚动视图以显示上一个月或下一个月。

但是因为我已经切换到iOS 8并下载了Xcode 6,所以它不再工作。 事实上,我仍然可以选择单元格,但scrollview不滚动(除非从头或分隔符拖动它,这是基本的UIView,没有任何触摸事件管理)。

Il我开始从单元格拖动滚动视图,它只是保持固定。

我没有改变任何东西,所以我不明白为什么它不工作了......

请帮助我! :)

非常感谢

PS:我是法国人,对不起我的英文不好

回答

4

编辑:与iOS 8.1的行为似乎的iOS 8.0之前,类似的行为,因此苹果可能有'修复。所以下面的答案不再需要了。


据我所见,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。

+0

噢,非常感谢你,解决了我的问题!太糟糕的默认实现返回NO,这将节省很多时间... – 2014-09-22 07:33:18

+0

@Thomas很高兴我云帮助。如果它解决了您的问题,请接受我的回答(设置绿色勾号;请参阅http://meta.stackexchange.com/a/5235) – marcus 2014-09-22 11:25:59

+0

谢谢,这让我摆脱了困境 – 2014-10-08 23:35:52