how to rotate UIIMageVIew with fix point?

后端 未结 3 536
时光取名叫无心
时光取名叫无心 2021-01-15 11:52

I want to rotate image on angle.But i wnt to rotate image with fix point.How can i set this fix point?

相关标签:
3条回答
  • 2021-01-15 12:21

    If you create a project using the default "View-based Application" in Xcode, just add this code to your -viewDidLoad in the main view controller that it creates:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        CABasicAnimation *rotationAnimation = [CABasicAnimation 
                             animationWithKeyPath:@"transform.rotation.z"];
    
        [rotationAnimation setFromValue:DegreesToNumber(0)];
        [rotationAnimation setToValue:DegreesToNumber(360)];
        [rotationAnimation setDuration:3.0f];
        [rotationAnimation setRepeatCount:10000];
    
        [[[self view] layer] addAnimation:rotationAnimation forKey:@"rotate"];
    }
    

    This will rotate the view around the x axis (center by default). You can just set the contents of that view (e.g. [[self view] setContents:image] where image is an image that you load using UIImage).

    Here are my helper functions for converting degrees to radians.

    CGFloat DegreesToRadians(CGFloat degrees)
    {
        return degrees * M_PI / 180;
    }
    
    NSNumber* DegreesToNumber(CGFloat degrees)
    {
        return [NSNumber numberWithFloat:
                DegreesToRadians(degrees)];
    }
    

    Hope that helps.

    0 讨论(0)
  • 2021-01-15 12:37

    Set the view's layer's anchorpoint, which is in view-local coordinates from 0 to 1. That is, the top left is 0,0 and the bottom right is 1,1.

    For example, the default is to rotate around the center:

    imageView.layer.anchorPoint = CGPointMake(.5,.5);
    

    If you want to rotate around the origin:

    imageView.layer.anchorPoint = CGPointMake(0,0);
    

    Or the middle right edge:

    imageView.layer.anchorPoint = CGPointMake(1,.5);
    
    0 讨论(0)
  • 2021-01-15 12:39

    imageView.layer.anchorPoint = CGPointMake(.5,.5); for get this you need to import following header file

    #import <QuartzCore/QuartzCore.h>
    
    0 讨论(0)
提交回复
热议问题