Why does a view changes position when rotating it using CGAffineTransformMakeRotation

前端 未结 3 1345
执念已碎
执念已碎 2021-02-12 21:35

I have the following super simple animation, I\'m basically rotating a view 2 radians from its original angle/center, it rotates fine my only misunderstanding is why does the vi

3条回答
  •  [愿得一人]
    2021-02-12 22:25

    You need to set the anchor point of your view to rotate around.

    self.somview.layer.anchorPoint = CGPointMake(0.5, 0.5);
    

    Then start the rotation.
    From Apple documentations

    @property(nonatomic) CGAffineTransform transform
    Changes to this property can be animated. Use the beginAnimations:context: class method to begin and the commitAnimations class method to end an animation block. The default is whatever the center value is (or anchor point if changed) Link: https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html#//apple_ref/occ/instp/CALayer/anchorPoint

    enter image description here
    image from here http://www.raywenderlich.com/9864/how-to-create-a-rotating-wheel-control-with-uikit
    - As you see the anchor point is the point with the value from 0.0 - 1.0 for X and Y when you rotate the rotation will be around these points
    NOTE: you need to import QuartzCore

提交回复
热议问题