UI_拖动View

简介:

方法一

在touchesMoved中

     // 获取到触摸的手指
     UITouch *touch = [touches anyObject]; // 获取集合中对象
     // 获取開始时的触摸点
     CGPoint previousPoint = [touch previousLocationInView:self];
     // 获取当前的触摸点
     CGPoint latePoint = [touch locationInView:self];
     // 获取当前点的位移量
     CGFloat dx = latePoint.x - previousPoint.x;
     CGFloat dy = latePoint.y - previousPoint.y;
     // 获取当前视图的center
     CGPoint center = self.center;
     // 依据位移量改动center的值
     center.x += dx;
     center.y += dy;
     // 把新的center赋给当前视图
     self.center = center;

方法二

#pragma mark - 重写方法
#pragma mark 触摸開始
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    self.startPoint = [touch locationInView:self];

    NSLog(@"%s",__FUNCTION__);
}

#pragma mark - 触摸移动
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"%s",__FUNCTION__);

    // 实现touchview随手势移动

    UITouch *touch = [touches anyObject];
    self.endPoint = [touch locationInView:self];
    CGFloat x = _endPoint.x - _startPoint.x;
    CGFloat y = _endPoint.y - _startPoint.y;

    CGPoint center = self.center;

    center.x += x;
    center.y += y;
    self.center = center;
}



本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5204400.html,如需转载请自行联系原作者
相关文章
|
6月前
|
Android开发 容器
Android UI设计: 什么是View和ViewGroup?
Android UI设计: 什么是View和ViewGroup?
141 0
|
5月前
|
XML API Android开发
06. 【Android教程】Android 的 UI 根基 View与View
06. 【Android教程】Android 的 UI 根基 View与View
39 1
|
6月前
|
iOS开发
Xcode强大的多视图立体分层显示View UI Herarchy
Xcode强大的多视图立体分层显示View UI Herarchy
54 0
【鸿蒙 HarmonyOS】UI 组件 ( 拖动条 Slider 组件 )
【鸿蒙 HarmonyOS】UI 组件 ( 拖动条 Slider 组件 )
387 0
【鸿蒙 HarmonyOS】UI 组件 ( 拖动条 Slider 组件 )
|
JavaScript 前端开发
我用View UI快速划分界面,这个Vue组件库有点强!
我用View UI快速划分界面,这个Vue组件库有点强!
243 0
|
移动开发 JavaScript 前端开发
Vue组件库 View UI 来看看这80种奇奇怪怪的按钮
Vue组件库 View UI 来看看这80种奇奇怪怪的按钮
374 0
|
JavaScript 前端开发 开发工具
Vue组件库 View UI快速入门 环境配置
Vue组件库 View UI快速入门 环境配置
388 0
非UI线程下页面处理:view的postInvalidate和post对消息处理的差异化
我们知道view有一系列post方法,用于在非UI线程中发出一些页面处理。view还有另外一个postInvalidate方法,同样在非UI线程中发起重绘。 同样是在非UI线程向UI线程发出消息,但是这里面有很大的区别。
212 0
下一篇
无影云桌面