UIScrollView与UIButtons - 滚动视图不会滚动当按钮开始
问题描述:
我刚更新到xCode 6和iOS 8,我注意到我的应用程序非常奇怪的东西。在我的应用程序中,我有一个滚动视图,其中有几个按钮,水平对齐。我设置它来创建我自己的自定义滚动标签栏控制器。在更新iOS 8和xCode 6之前,一切工作都很完美,但现在我意识到,当我尝试向左或向右滚动滚动视图时,我的初始触摸位于滚动视图中的某个按钮内,则不会发生滚动。但是,如果我触摸按钮之间的滚动按预期工作。我认为这是一个按钮注册触摸的问题,就像滚动视图从未被触摸一样。但这完全是100%工作,所以我不知道怎么回事!UIScrollView与UIButtons - 滚动视图不会滚动当按钮开始
答
我结束了创建的UIScrollView的子类,设置它的cancelContentTouches值设置为TRUE,我的问题解决了
答
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
答
没有必要继承ScrollView 只是使用这个:
yourScrollView.panGestureRecognizer.delaysTouchesBegan =yourScrollView.delaysContentTouches;
只为任何人在这里使用谷歌搜索。我有一个奇怪的地方,更新到XCode6,出于某种原因,它关闭(!)“用户交互已启用”的视图,在故事板。谁知道为什么!我把它打开了,一切都很好。 – Fattie 2014-09-26 16:21:53