0

축소 축척 객체가 움직입니다. 언제든지 사용자는 버튼을 눌러 객체의 현재 축척 비율을 얻을 수 있습니다. (저는 CGAffineTransformMakeScale을 사용하여 객체의 크기를 조정하기 시작합니다. 따라서 원래 크기에 도달하면 축척 비율은 1이되어야합니다). 나는 여기에 내 코드입니다 ... 그냥 애니메이션있는 UIImageView에서 현재 축척 계수를 검색하는 방법을 잘 모르겠어요 :CABasicAnimation에서 축척 인수 얻기

나는 다음과 같은 시도,하지만 난 M12 내가 검색해야하는 값입니다 확실하지 않다
- (void)startShrink { 
    CGAffineTransform scaleFactor = CGAffineTransformMakeScale(kScaleX, kScaleY); 
    imageOutline.transform = scaleFactor; 

    CABasicAnimation *shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 
    shrink.toValue = [NSNumber numberWithDouble:0.5]; 
    shrink.duration = 2.0; 
    shrink.fillMode=kCAFillModeForwards; 
    shrink.removedOnCompletion=NO; 
    shrink.delegate = self; 

    [imageOutline.layer addAnimation:shrink forKey:@"shrink"]; 
} 

변환에서. 또는 사실이 올바른 접근 방식 인 경우 대부분의 평가

- (float)calculateScale { 
    CATransform3D scaleTransform = [(CALayer *)[imageOutline.layer presentationLayer] transform]; 
    float scale = scaleTransform.m12; 
    NSLog(@"Scale: %g", scale); 
    return scale; 
} 

어떤 조언 :

감사합니다, 마이클.

답변

1

모든 축에서 일정하게 뷰의 크기를 조정하면 축척 값은 m11과 같아야합니다 (m22도 마찬가지 임).

가 가
CGAffineTransform scaleFactor = CGAffineTransformMakeScale(kScaleX, kScaleY); 
imageOutline.transform = scaleFactor; 
가 보기 바로 다음 반으로 축소 (나는 스케일 값 0.5 사용) 및

두 번 축소 : 다음과 같은 2 선이 중복 것 같다 -

난 그냥 코드를 복사 - 붙여 넣기로 샘플을 실행 애니메이션 더보기 more

+0

위대한 - m11 트릭, 감사합니다! 두 줄은 처음에는 이미지의 크기를 4로 늘리므로 애니메이션을 적용 할 때 원래 크기보다 크게 축소됩니다. – Smikey