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围绕某点缩放或旋转的AnchorPoint的设定

经常会遇到需求,要求手势的缩放或者旋转操作,要求动作变化围绕某一个特定点,或者是两指的中心点,或者是某一个点。 这个问题首先要清晰的知道,iOS各个view的层次关系。特别是,要清除的知道,当前vi...
  • yongyinmg
  • yongyinmg
  • 2014年07月18日 13:08
  • 24423

IOS图片拖拽.旋转.缩放

iOS上实现图片的拖拽,旋转,缩放还是比较简单的,将手势变化转换成矩阵变换就可以实现了 ### 涉及的知识点: 1.拖拽手势 UIPanGestureRecognizer 2.捏合手势 UIPinch...
  • luguogege
  • luguogege
  • 2016年01月30日 14:45
  • 1509

iOS开发——手势识别器(用手势实现图片旋转和缩小放大)

iOS开发中,除了有关触摸的这组方法来控制用户的手指触控外,还可以用UIGestureRecognize的衍生类来进行判断,方便了开发。 UIGestureRecognize的子类类别有以下几种: ...
  • u012350430
  • u012350430
  • 2016年04月25日 21:45
  • 2884

iOS 旋转手势

iOS的手势功能很强大,大家都知道。但是如何使用了? 这里 我们简单的以一个UILabel测试一下旋转 使用Xcode 创建一个工程 起名testRotation 我们在默认生...
  • lwjok2007
  • lwjok2007
  • 2016年03月09日 15:53
  • 688

UIView实现简单触摸拖拽手势

1.首先要创建一个UIView,不管你是用Storyboard拖入,还是在代码里自己创建。 2.创建一个拖拽手势 3.创建一个拖拽手势所对应的function 4.在function中实现UIV...
  • sinat_31709565
  • sinat_31709565
  • 2016年01月12日 15:20
  • 1233

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

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

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

iOS开发的旋转手势是两个手指操作的这里实现了单个手指的旋转手势 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {...
  • Yo_Yo_Yang
  • Yo_Yo_Yang
  • 2015年11月20日 16:31
  • 1949

iOS 旋转动画(图片360°旋转)关键代码

开发项目过程中,经常会做一些动画,比如进入某些页面需要让一个view进行360°旋转等等。结合网友们的经验,觉得下面的这些代码用起来还是比较方便的,就总结一下,方便下次使用。创建一个UIImageVi...
  • u013364937
  • u013364937
  • 2015年12月03日 14:03
  • 594

【unity】Unity 手指滑动让物体旋转

public void JudgeFinger () { //没有触摸 if (Input.touchCount
  • ldy597321444
  • ldy597321444
  • 2016年10月19日 14:54
  • 3988

Android单点触控技术,对图片进行平移,缩放,旋转操作

相信大家使用多点对图片进行缩放,平移的操作很熟悉了,大部分大图的浏览都具有此功能,有些app还可以对图片进行旋转操作,QQ的大图浏览就可以对图片进行旋转操作,大家都知道对图片进行缩放,平移,旋转等操作...
  • xiaanming
  • xiaanming
  • 2015年01月19日 08:42
  • 40559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发 单手使触摸的视图旋转
举报原因:
原因补充:

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