2014-03-29 1 views
0

변환을 사용하여 내 응용 프로그램에서 이미지를 회전하고 있으며 iOS 7.1 (iOS 7에서는 괜찮 았음)까지 제대로 작동했습니다. iOS 7.1에서는 이미지가 회전 할 때 의도하지 않은 선이 표시됩니다. 선이 항상 정적 인 것은 아니며, 즉 코드가 특별히 애니메이션을 수행하지 않는 경우에도 선이 변경됩니다. 다음은 그 예입니다. 왼쪽의 공상 구름은 제가 사용하고있는 jpg입니다. 오른쪽의 수직 검은 선은 의도적으로 그려진 것이 아닙니다. 스크린 그랩 (screen grab)이 효과를 포착하지 않는 것 같기 때문에이 그림은 화면 캡처가 아닙니다.iOS7.1에서 UIImageView를 변형 할 때 의도하지 않은 수직선을 제거하는 방법

self.transform = CGAffineTransformMakeRotation(self.rotation); 

내가이있는 UIImageView 하위 클래스에 대한 그림자를 사용하고 있습니다 :

self.layer.shadowOffset = CGSizeMake(0, -1); 
    self.layer.shadowOpacity = 1; 
    self.layer.shadowColor = [UIColor blackColor].CGColor; 
여기

enter image description here

내가 자기에의 (a있는 UIImageView의 서브 클래스)를 사용하고 변환의 예

이 세 줄의 그림자 코드를 주석 처리하면 문제가 해결됩니다. 그리고 이것을 지금 해결 방법으로 사용하려고합니다. (iOS7에서는이 줄을 비활성화합니다).

단순한 응용 프로그램에서이 효과를 재연하지 못했기 때문에 다른 일이 벌어지고있는 것 같습니다.

그 밖의 다른 사람이 그런 수직선에 닿았습니까?

편집은 :

지금은 이전의이 같은 결과를 얻을 여전히 변환 이전에 추가 변환 및 교체

self.layer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMakeRotation(self.rotation)); 

을 시도했습니다.

+0

변형이 이미지에는 적용되지만 그림자에는 적용되지 않습니다. – Garoal

답변

1

이미지보기 대신 레이어를 변환 해 보았습니까?

Self.layer.tranform = blah... 
+0

흥미로운 아이디어입니다. 지금까지 나를 위해 일하지 않았다. 위의 편집 내용을 참조하십시오. –

+0

흠 ... 좋아. 두 번째 아이디어. 하위 클래스 대신 표준 UIImageView를 사용해보십시오. 그냥 시도해보십시오. – Fogmeister

+0

그건 맥락에서 실제로 가능하지 않습니다. 그러나 나는 반대를 시도했다. (이 효과를 재현 할 수있는) 간단한 예제에서는 UIImageView를 하위 클래스로 만들려고했습니다. 도움이 안돼. 단순화 된 예제에서는 효과를 재현 할 수 없습니다. –