iOS开发 单手使触摸的视图旋转

原创 2015年11月20日 16:31:33

iOS开发的旋转手势是两个手指操作的这里实现了单个手指的旋转手势

<pre name="code" class="objc">- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    
    UITouch *touch = [touches anyObject];
    
    NSUInteger toucheNum = [[event allTouches] count];//有几个手指触摸屏幕
    if ( toucheNum > 1 ) {
        return;//多个手指不执行旋转
    }
    
    //self.tranformView,你想旋转的视图
    if (![touch.view isEqual:self.tranformView]) {
        return;
    }
    
    /**
     CGRectGetHeight 返回控件本身的高度
     CGRectGetMinY 返回控件顶部的坐标
     CGRectGetMaxY 返回控件底部的坐标
     CGRectGetMinX 返回控件左边的坐标
     CGRectGetMaxX 返回控件右边的坐标
     CGRectGetMidX 表示得到一个frame中心点的X坐标
     CGRectGetMidY 表示得到一个frame中心点的Y坐标
     */
    
    CGPoint center = CGPointMake(CGRectGetMidX([touch.view bounds]), CGRectGetMidY([touch.view bounds]));
    CGPoint currentPoint = [touch locationInView:touch.view];//当前手指的坐标
    CGPoint previousPoint = [touch previousLocationInView:touch.view];//上一个坐标
    
    /**
     求得每次手指移动变化的角度
     atan2f 是求反正切函数 参考:http://blog.csdn.net/chinabinlang/article/details/6802686
     */
    CGFloat angle = atan2f(currentPoint.y - center.y, currentPoint.x - center.x) - atan2f(previousPoint.y - center.y, previousPoint.x - center.x);
    
    self.tranformView.transform = CGAffineTransformRotate(self.tranformView.transform, angle);
    
}




iOS 屏幕旋转,单个屏幕旋转的实现

闲来无事研究了一下屏幕旋转的问题 说到屏幕旋转问题不得先说一句,做项目尽量还是优先使用storyboard、IB因为有了autolayout的约束布局为基础再去做屏幕旋转需要的视图布局适配就相对来说简...

iOS 单指缩放旋转

单指旋转有很多种计算方法,也有很多博客文章讲解原理。 我使用了这样的一种方法进行计算和操作。包含了项目需要的,越界回弹,以及最小缩放回弹。 因为时间原因,真正对缩放旋转的控制,只有几行代码,但是却实现...
  • chentoo
  • chentoo
  • 2013年11月05日 16:13
  • 1325

iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)

1、UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性。iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了U...

Android 高德地图添加线段纹理

共享单车轨迹界面如:小黄车和摩拜单车界面布局采用的是高德地图,并且每个轨迹线段都是有对应的地图纹理 首先,我们在高德地图开发环境下进行地图线段纹理开发需要明确几个前提: 线段添加纹理根据官方文档是在...

iOS 单手旋转

最近需要做单手的旋转,但是iOS自带的都是双手的,需要自定义,查到网上有不错的Demo - (void)touchesMoved:(NSSet *)touches withEvent:(UIEven...
  • rpf2014
  • rpf2014
  • 2017年02月21日 16:41
  • 146

IOS开发(90)之动画视图的旋转

1 前言 今天我们来学习如何创建一个旋转仿射变换并使用 UIView 类的动画方法来执行旋转动作。 2 代码实例 ZYViewController.m - (void)viewDidL...

IOS开发-TableView表视图LV2

  • 2013年06月09日 16:47
  • 75KB
  • 下载

QML使用PinchArea实现捏拉缩放与旋转并单手拖放控件

因为要实现一个类似微信换头像的功能,所以使用到了背景图片的捏拉缩放 并且还要能单手拖放控件! 根据查阅文档,了解到要实现捏拉缩放可以使用PinchArea来实现,当人也 可以自己事件,这边就直接用系统...
  • CLinuxF
  • CLinuxF
  • 2017年11月11日 15:10
  • 549
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发 单手使触摸的视图旋转
举报原因:
原因补充:

(最多只允许输入30个字)