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);
    
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

atan函数与atan2函数的一点区别

atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2); 那么这两个点形成的斜率的角度计算方法分别是: float angle = at...

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

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

iOS 单指缩放旋转

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

iOS 已经 实现 单指 旋转 缩放 位移 等操作,Transform的应用

经过了3天的时间努力,终于把这个demo做好了。 目前可以实现蓝色区域内的缩放,位移,旋转,取消编辑状态等操作。 已经写成了一个UIVIew,可以任意添加到Controller中使用(需继承ARC...

【iOS】关于视图的旋转和复原(CGAffineTransform)

我就以我自己的简单的旋转来抛砖引玉了。 首先,你创建一个view,然后实现view 的旋转动画和复原 旋转的的代码: [UIView animateWithDuration:2.0f animat...
  • wm9028
  • wm9028
  • 2015-11-23 13:44
  • 5489

IOS开发——旋转(CGAffineTransformMakeRotation)之后view和子view坐标系的变化

视图旋转只影响视图本身以及子视图的视觉效果,视图旋转改变了其在父视图中的位置但并未改变自身尺寸,也没有改变子视图在其坐标系的位置,另外该旋转是围绕center为中心进行的,so 只有旋转的视图自身fr...

iOS 单手旋转

最近需要做单手的旋转,但是iOS自带的都是双手的,需要自定义,查到网上有不错的Demo - (void)touchesMoved:(NSSet *)touches withEvent:(UIEven...

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

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

IOS开发-TableView表视图LV2

  • 2013-06-09 16:47
  • 75KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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