2014-09-10 128 views
1

我刚更新到xCode 6和iOS 8,我注意到我的应用程序非常奇怪的东西。在我的应用程序中,我有一个滚动视图,其中有几个按钮,水平对齐。我设置它来创建我自己的自定义滚动标签栏控制器。在更新iOS 8和xCode 6之前,一切工作都很完美,但现在我意识到,当我尝试向左或向右滚动滚动视图时,我的初始触摸位于滚动视图中的某个按钮内,则不会发生滚动。但是,如果我触摸按钮之间的滚动按预期工作。我认为这是一个按钮注册触摸的问题,就像滚动视图从未被触摸一样。但这完全是100%工作,所以我不知道怎么回事!UIScrollView与UIButtons - 滚动视图不会滚动当按钮开始

+0

只为任何人在这里使用谷歌搜索。我有一个奇怪的地方,更新到XCode6,出于某种原因,它关闭(!)“用户交互已启用”的视图,在故事板。谁知道为什么!我把它打开了,一切都很好。 – Fattie 2014-09-26 16:21:53

回答

3

我结束了创建的UIScrollView的子类,设置它的cancelContentTouches值设置为TRUE,我的问题解决了

+0

不适合我。它不像7.1中那样平滑 – rozochkin 2014-09-17 11:44:42

+2

我认为你的意思是这个方法 - (布尔)touchesShouldCancelInContentView:(UIView *)查看 – rozochkin 2014-09-17 11:51:50

+1

没有'cancelContentTouches'。你的意思是'canCancelContentTouches'?我将它设置为“YES”,但它仍然不适合我。 – 2014-09-20 00:13:06

1

UIScrollView的子类和下方添加代码到.m文件,并解决的iOS 8

下我的滚动冻结问题

代码:

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view 
{ 
    UITouch *touch = [touches anyObject]; 

    if(touch.phase == UITouchPhaseMoved) 
    { 
     return NO; 
    } 
    else 
    { 
     return [super touchesShouldBegin:touches withEvent:event inContentView:view]; 
    } 
} 

将此溶液pasta12的回答中发现https://stackoverflow.com/a/25900859/3433059

+0

在我的情况下,需要将此解决方案添加到其他给定的解决方案。 – Joel 2017-08-14 22:32:14

0

没有必要继承ScrollView 只是使用这个:

yourScrollView.panGestureRecognizer.delaysTouchesBegan =yourScrollView.delaysContentTouches;