2013-06-15 4 views
0

NSView를 중심으로 스케일링해야합니다. CATransform3DMakeScale을 사용해 보았지만 뷰를 확대하기 위해 노력했지만 센터를 달성 할 수 없었습니다. 레이어 앵커 포인트를 .5, .5로 설정하려고 시도했지만 작동하지 않았습니다. scaleUnitSquareToSize를 사용해 보았지만 많은 노력을 기울이지 않으면 복구 할 수없는 문제가 발생했습니다.스케일링 NSView 중심화

결국 NSView의 눈금을 0.8과 같이 설정할 수 있어야하고 중심 주위를 축소하고 눈금을 다시 1로 설정하여 다시 설정할 수 있어야합니다.

답변

1

나는 또한 smilar 문제에 직면했다. CABasicAnimation을 생성하기 전에 해당 줄을 실행하십시오.

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

그래서 저에게는 효과적입니다. ,

- (void)setMagnification:(CGFloat)magnification centeredAtPoint:(NSPoint)point 
+0

프레임 수정 + 1과 함께 다른 답변이 추가되었습니다. – avishic

1

, 당신은 NSScrollView의 함수를 호출 할 수

CGRect frame = layer.frame; 
layer.anchorPoint = CGPointMake(.5, .5); 
layer.frame = frame; // Fix the location shift caused from anchor change 
1

추가 @의 fyasar의 답변에 대한 프레임 수정 맥 OS에 나를 위해 작동합니다 : 당신이 10.8을 필요로 할 수있는 경우

행운