2013-03-07 1 views
0
)

CIIffageTransform 만 사용하여 contentView UIViewContentModeTopLeft를 사용하여 UIImageView에서 UIImage의 중심을 맞추고 크기를 조정해야합니다. 전 CGAffineTransform 정보가 필요하기 때문에 contentMode UIViewContentModeCenter를 사용할 수 없습니다.UIImageView에서 UIImage의 중심을 맞추는 방법 (

지금까지 _imageView가 UIImageView이고 이미지가 UIImage 인 곳을 사용하고 있습니다.

_imageView.image = image; 
CGFloat scale = fmaxf(_imageView.bounds.size.width/_imageView.image.size.width, _imageView.bounds.size.height/_imageView.image.size.height); 
CGAffineTransform transform = CGAffineTransformIdentity; 
transform = CGAffineTransformTranslate(transform, _imageView.image.size.width * 0.5, _imageView.image.size.height * 0.5); 
transform = CGAffineTransformScale(transform, scale, scale);  
_imageView.transform = transform; 

스케일링은 괜찮지 만 이미지는 항상 오른쪽 하단에 약간의 오프셋이 있습니다. 누구든지 contentMode UIViewContentModeCenter를 사용하지 않고이 작업을 수행하는 방법을 알고 있습니까?

답변

2

보십시오이 하나 : 당신은 또한의 CALayer의 [anchorPoint]와 함께 연주 시도 할 수

CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"]; 
scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; 
scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]; 
scaleAnim.removedOnCompletion = YES; 
[_imageView.layer addAnimation:scaleAnim forKey:nil]; 
+0

(https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/ CoreAnimationBasics/CoreAnimationBasics.html # // apple_ref/doc/uid/TP40004514-CH2-SW15). –

관련 문제