2012-07-23 1 views
2

UIScrollView에있는 UIImageView가 있습니다. 나는 다음과 같은 코드로있는 UIImageView의의 CALayer에 이미지를로드 :UIImageView.layer의 변형은 UIScrollView에 영향을 줌 zoomScale

UIImage *image = [UIImage imageNamed: fileToDisplay];  
NSLog(@"If I don't flip image imageScrollView.zoomScale: %f", imageScrollView.zoomScale); 
[[imageView layer] setContents: (id)image.CGImage]; 
if (flipped) 
{ 
    [[imageView layer] setTransform: CATransform3DMakeRotation(180.0/180.0 * M_PI, 0.0, 1.0, 0.0)]; 
    NSLog(@"If image flipped imageScrollView.zoomScale: %f", imageScrollView.zoomScale); 
} 

내가 '반전'y 축에 대한 이미지입니다. I 화상 imageScrollView.zoomScale 플립되지 않으면

은 : 0.465455

는 이미지 imageScrollView 뒤집힌 경우 예기치 않은 이벤트는 다음의 출력에 도시 된 바와 같이 imageView.layer의 변환이 imageScrollView.zoomScale 변경된다는 것이다. zoomScale : 1.000000

내 질문은 어떻게 이런 일이 일어나지 않게합니까? 이 동작을 수행 할 방법이 없으면 뒤집지 않는 이미지에서 수행되는 이미지 프레임을 만들기 위해 무엇을해야합니까? 다시 말해, zoomScale을 변환 이전의 값으로 설정하는 것만으로는 효과가 없습니다. 다른 것은 UIScrollView에서 변경되었습니다 (contentSize 또는 contentOffset이 아님).

도움 주셔서 감사합니다.

답변

0

CATransform3DMake... 메소드를 사용 중이므로 새로운 변환을 만들고 현재 변환을 대체하게됩니다. 대신 CATransform3DRotate을 사용해야 현재 회전 (눈금에 사용됨)에 회전을 추가 할 수 있습니다.

imageView.layer.transform = CATransform3DRotate(imageView.layer.transform , 180.0/180.0 * M_PI, 0.0, 1.0, 0.0); 
관련 문제