본문 바로가기

프로그래밍/아이폰 프로그래밍

UIImageView 를 특정 기준점으로 회전 시키기

이미지를 특정 기준점으로 회전 시키고 싶을 경우에는 

layer 에 들어있는 anchorPoint 속성을 이용하면 됩니다.

ex )

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    image = [UIImage imageNamed:@"arrow_left.png"];

    imageView = [[UIImageView alloc] initWithImage:image];

    imageView.center = CGPointMake(100, 100);

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

    

    [self.view addSubview:imageView];

    

    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];

}

float count = 0;

- (void) updateTime {

    

    count = count + 90;

    

    [UIView beginAnimations:nil context:NULL];

    [UIView setAnimationDuration:1.0]; // 애니메이션 동작 시간 : 1.0

    [UIView setAnimationDelegate:self]; // 여기서 구현

    [UIView setAnimationCurve:UIViewAnimationCurveLinear];

    //[UIView setAnimationRepeatAutoreverses:YES];

    

    // 예제... 안에서 객체의 위치,크기,알파 등의 변화가 있으면 저절로 애니메이션이 적용된다.
    // 

    CGAffineTransform transform = CGAffineTransformMakeRotation(degreesToRadians(count));

    

    imageView.transform = transform;

    

    [UIView commitAnimations];