美文网首页
UIScrollView滑动手势

UIScrollView滑动手势

作者: __May__ | 来源:发表于2018-07-06 16:57 被阅读0次


最近因为项目需要,添加画笔功能  设计是仿微信的   微信的画笔 后面图片可缩放 移动  图片的移动是用2只手指以上触碰才可以移动。

刚开始使用UIscrollView  发现画笔与UIscrollView 自带的拖拽手势起了冲突 ,自己曾用手势来实现缩放但是效果觉得没有UIscrollView 的好  所以想着尝试用UIscrollView  然后想法去屏蔽UIScrollView的panGestureRecognizer,

自己曾用手势来实现缩放 但是效果觉得没有UIscrollView 的好  所以想着尝试用UIscrollView去屏蔽他的.

scrollView..panGestureRecognizer 是readOnly 

看了好多文章 找到解决方法  — 重写UIscrooView 的手势的代理方法

首先建一个类继承自UIScrollView,

 重写下面方法  让scrollView 自带的手势不可用


之后我这里是添加了一个需要两个手指才能滑动的手势 这样就不会跟我的画笔冲突了.下面摆上代码

@implementationLNFingerContainerScrollView

- (instancetype)init

{

   self= [superinit];

   if(self) {

        [selfsetGesture];

    }

 returnself;

}

- (void)setGesture{

 _gesture=[[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(gestureAction:)];

 _gesture.minimumNumberOfTouches= 2;

    [selfaddGestureRecognizer:_gesture];

}

- (void)setFrame:(CGRect)frame{

    [supersetFrame:frame];

    [selfsetContentSize:CGSizeMake(frame.size.width, frame.size.height)];

}

- (void)setContentView:(UIView*)contentView{

 _contentView= contentView;

    [_contentViewremoveFromSuperview];

    [_contentViewsetFrame:self.bounds];

    [selfaddSubview:_contentView];

}

- (void)gestureAction:(UIPanGestureRecognizer*)sender{

 CGPointpt = [sender translationInView:self];

 CGPointoffset = self.contentOffset;

 CGFloatx = offset.x- pt.x;

 CGFloaty = offset.y- pt.y;

 if(x < 0) {

x= 0;

    }elseif(x > self.contentSize.width- self.frame.size.width) {

x = self.contentSize.width- self.frame.size.width;

    }

 if(y < 0) {

y= 0;

    }

 if(y > self.contentSize.height- self.frame.size.height) {

        y =self.contentSize.height- self.frame.size.height;

    }

    [selfsetContentOffset:CGPointMake(x, y)];

[sender setTranslation:CGPointMake(0, 0) inView:self];

}

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer{

 if(gestureRecognizer == self.panGestureRecognizer) {

 returnNO;

    }

 returnYES;

}

@end

相关文章

网友评论

      本文标题:UIScrollView滑动手势

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