美文网首页iOS
iOS开发:UIScrollView 与 UIButton 手势

iOS开发:UIScrollView 与 UIButton 手势

作者: Jason_hzb | 来源:发表于2018-04-15 12:23 被阅读22次

问题描述:

在UIScrollView中加入UIButton后,在button区域无法进行滑动操作,有时候我们可能希望在button在响应点击事件的同时,还要支持UIScrollView的滑动手势,以达到更好的用户体验。经过研究实践,总结了以下2种实现方式:

方法一:

使用UILabel,添加TapGestureRecognizer替代Button的点击事件

此方法最简便快捷,此处不再贴出代码了

方法二:

继承UIScrollView,重写

- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
    [super touchesShouldCancelInContentView:view];
    //NO UIScrollView不可以滚动, YES UIScrollView可以滚动
    return YES;
}

方法,对event事件做过滤,需配合UIScrollView的canCancelContentTouches属性使用。

详细描述:

当UIScrollView将touch事件交给子view后,当手指发生滑动时,调用此方法,假如返回NO,则将touch事件交给子view,如果返回YES,则交给UIScrollView处理,产生滑动。(但是前提是UIScrollView的canCancelContentTouches属性是YES才会调用这个方法,只要不是UIControll的子类,这个属性默认是YES。)所以只要重写UIScrollView的这个方法并返回YES就可以啦,到此问题就解决了。既能立即响应UIButton,也能自由滑动UIScrollView。

相关文章

网友评论

    本文标题:iOS开发:UIScrollView 与 UIButton 手势

    本文链接:https://www.haomeiwen.com/subject/iusdkftx.html