2009-09-12 4 views

답변

13

뷰의 레이어의 앵커 포인트를 뷰 로컬 좌표로 0에서 1로 설정합니다. 즉, 왼쪽 상단이 0,0이고 오른쪽 하단이 1,1입니다. 예를 들어

는 기본 중심으로 회전하는 것입니다

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

당신 원점 중심으로 회전 할 경우

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

또는 중간 오른쪽 가장자리 :

imageView.layer.anchorPoint = CGPointMake(1,.5); 
+0

다음 가져올 필요는 레이어의 속성에 액세스 할 수 있도록 프로젝트 및 클래스의 Quartz2D 프레임 워크를 포함 할 필요가 있습니다 . – Dimitris

+0

USELESS! 좋아요, 당신은 앵커 포인트를 바꿨습니다. 그러나이 작업을 통해보기/레이어도 이동했습니다. 그럼 고칠 수 있니? –

4

Xcode에서 기본 "보기 기반 응용 프로그램"을 사용하여 프로젝트를 만드는 경우이 코드를 -vi에 추가하기 만하면됩니다 ewDidLoad는 메인 뷰 컨트롤러에서 생성합니다 :

- (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"]; 
} 

이것은 x 축 (기본적으로 중심)을 중심으로 뷰를 회전시킵니다. 해당 뷰의 내용을 설정할 수 있습니다 (예 : [[self view] setContents : image], 여기서 image는 UIImage를 사용하여로드하는 이미지).

다음은 각도를 라디안으로 변환하는 도우미 함수입니다.

CGFloat DegreesToRadians(CGFloat degrees) 
{ 
    return degrees * M_PI/180; 
} 

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

희망이 있습니다. 이 수에 대한

1

imageView.layer.anchorPoint = CGPointMake(.5,.5); 당신은, 헤더 파일이 방법을 사용하는 사람들을 위해

#import <QuartzCore/QuartzCore.h> 
+0

작동하지 않습니다! 올바른 위치를 끊습니다. –

관련 문제