mysql touches_touches – 缘起缘落 – OSCHINA – 中文开源技术交流社区

mysql touches_touches – 缘起缘落 – OSCHINA – 中文开源技术交流社区void touchesBegan NSSet toucheswithE UIEvent event 获取刚开始触摸屏幕时的两个点 NSArray allTouches touchesallOb UITouch firstTouch allTouchesfi UITouch secondTouch allT

– (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

获取刚开始触摸屏幕时的两个点

NSArray * allTouches = [touches allObjects];

UITouch * firstTouch = [allTouches firstObject];

UITouch * secondTouch = [allTouches lastObject];

_firstPreviousLocation = [firstTouch locationInView:self];

_secondPreviousLocation = [secondTouch locationInView:self];

}

– (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{

只有一个手指触摸屏幕,则不处理捏合操作.

if (1 == [touches count]) {

return;

}

获得两个手指移动之后的位置.

NSArray  * allTouches = [touches allObjects];

UITouch * firstTouch = [allTouches firstObject];

UITouch * secoundTouch = [allTouches lastObject];

获取两个手指之前的位置

CGPoint _firstPreviousLocation = [firstTouch previousLocationInView:self];

CGPoint _secondPreviousLocation = [secoundTouch previousLocationInView:self];

获取两个手指当前的位置

CGPoint firstCurrentLocation = [firstTouch locationInView:self];

CGPoint sencondCurrentLocation = [secoundTouch locationInView:self];

获取之前两个点距离

CGFloat previousDistance = [self distanceOfPoint1:_firstPreviousLocation point2:_secondPreviousLocation];

获取当前两个点距离

CGFloat currentDistance = [self distanceOfPoint1:firstCurrentLocation point2:sencondCurrentLocation];

求变化的比例  处理previousDistance 可能为0 的情况 . 为0 就初一1

CGFloat scale = currentDistance / previousDistance ? previousDistance : 1;

CGFloat scale = currentDistance / previousDistance;

修改视图的大小按比例缩放

self.bounds = CGRectMake(0, 0, self.bounds.size.width * scale , self.bounds.size.height * scale);

存储当前点

_firstPreviousLocation = firstCurrentLocation;

_secondPreviousLocation = sencondCurrentLocation;

}

计算两个点的距离

– (CGFloat)distanceOfPoint1:(CGPoint)point1 point2:(CGPoint)point2

{

CGFloat dx = point1.x-point2.x;

CGFloat dy = point1.y-point2.y;

return sqrt(pow(dx, 2) + pow(dy, 2));

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221034.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:04
下一篇 2026年3月17日 下午7:04


相关推荐

  • networkmanager服务是否启动_nmcli开热点

    networkmanager服务是否启动_nmcli开热点一、简介NetworkManager服务是管理和监控网络设置的守护进程,CentOS7更加注重使用NetworkManager服务来实现网络的配置和管理,CentOS7以前是通过network服务管理网络,以后的版本所有网络管理和设置统一由NetworkManager服务来维护。它是一个动态的,事件驱动的网络管理服务。NetworkManager在系统中的管理工具为nmcli二、nmcli简单使用2.1、查看#查看所有硬件设备信息nmclideviceshow#查看制定设备信息

    2022年10月4日
    5
  • Linux SIGTERM 捕获

    Linux SIGTERM 捕获test c include amp amp lt stdio h amp amp gt include amp amp lt signal h amp amp gt voidhandler intmain intargc charargv sigset SIGTERM handler printf amp q

    2026年3月19日
    1
  • 【从0開始Tornado建站】群聊

    【从0開始Tornado建站】群聊

    2021年12月5日
    45
  • Oracle PL/SQL编程之五: 异常错误处理(知已知彼、百战不殆)

    Oracle PL/SQL编程之五: 异常错误处理(知已知彼、百战不殆)Oracle PL/SQL编程之五:异常错误处理(知已知彼、百战不殆) 本篇主要内容如下:5.1 异常处理概念5.1.1 预定义的异常处理5.1.2 非预定义的异常处理5.1.3 用户自定义的异常处理5.1.4  用户定义的异常处理5.2 异常错误传播5.2.1 在执行部分引发异常错误5.2.2 在声明

    2022年6月17日
    34
  • 数学图形(1.12) 螺线

    数学图形(1.12) 螺线在平面极坐标系中 如果极径 随极角 的增加而成比例增加 或减少 这样的动点所形成的轨迹叫做螺线 最常见的螺线有阿基米德螺线 对数螺线 双曲螺线等 阿基米德螺线 vertices 1000t from0to 20 PI a 0 05r a tx r sin t y r cos t 等角螺线 v

    2026年3月19日
    2
  • JS设置定时器_js设置定时器

    JS设置定时器_js设置定时器JS定时器的一些特性和如何避免重复设置定时器概述和总结每个JS定时器产生时会被系统分配一个id,这个id是正整数,而且一个页面里面的定时器id不重复,我们能用一个变量接收这个id,但是如果重复执行一条接收创建语句,那么你只能接收到最新创建的定时器的id,之前创建的定时器的id会被覆盖,但是定时器数量在增加,这就会导致界面一些功能错乱,解决方法就是在重复按开始按钮时,如果已经有了一个定时器那么就不执行语句,我列出了错误代码和三种解决方法,可以解决定时器重复创建问题。ps:定时器id的配发是递增的,从1开

    2025年6月25日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号