美文网首页
UIView的拖拽

UIView的拖拽

作者: 蔚尼 | 来源:发表于2018-06-01 10:17 被阅读21次

    如何实现UIView的拖拽呢?也就是让UIView随着手指的移动而移动。

    • 重写touchsMoved:withEvent:方法

    UITouch

    • UITouch保存着跟手指相关的信息,比如触摸的位置、时间、阶段;
    • 当手指移动时,系统会更新同一个UITouch对象,使之能够一直保存该手指在的触摸位置
    • 当手指离开屏幕时,系统会销毁相应的UITouch对象
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 
        // 想让控件随着手指移动而移动,监听手指移动 
        // 获取UITouch对象 
        UITouch *touch = [touches anyObject]; 
        // 获取当前点的位置 
        CGPoint curP = [touch locationInView:self]; 
        // 获取上一个点的位置 
        CGPoint preP = [touch previousLocationInView:self]; 
        // 获取它们x轴的偏移量,每次都是相对上一次 
        CGFloat offsetX = curP.x - preP.x; 
        // 获取y轴的偏移量 
        CGFloat offsetY = curP.y - preP.y; 
        // 修改控件的形变或者frame,center,就可以控制控件的位置 
        // 形变也是相对上一次形变(平移) 
        // CGAffineTransformMakeTranslation:会把之前形变给清空,重新开始设置形变参数 
        // make:相对于最原始的位置形变 
        // CGAffineTransform t:相对这个t的形变的基础上再去形变 
        // 如果相对哪个形变再次形变,就传入它的形变 
        self.transform = CGAffineTransformTranslate(self.transform, offsetX, offsetY);}
    

    相关文章

      网友评论

          本文标题:UIView的拖拽

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