2012-11-22 2 views
0

Pan, Pinch 및 Rotate와 같은 제스처 인식기를 사용하면 UIImageView 내에서 UIImage를 조작 할 수 있습니까? 내가있는 UIImage의 제스처 인식기를 정의하려고 할 때마다GestureRecognizers로 UIImage 조작 - UIImageView가 아님

, 내가

눈에 띄는있는 UIImage를 알리는없는 오류 'addGestureRecognizer은'지원이 코드

:

UIRotationGestureRecognizer *rotateGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateImage:)]; 
[imageStrip addGestureRecognizer:rotateGesture]; 

UIImageView를 변형하지 않고 UIImageView 내부에서 UIImage를 변형하는 방법이 있습니까?

+0

사실, 이미지 데이터 자체를 수정하는 것은 복잡한 작업이 될 수 있습니다 ... 왜 UIImageView를 변형하고 싶지 않습니다? UIView (스냅 샷 찍기와 같은 것)에서 새 UIImage를 생성 할 가능성이 있기 때문에 요청합니다. 그러면 괜찮을지도 모릅니다. –

+0

내 응용 프로그램에서 특수 편집 효과를 목표로 삼았습니다.이 응용 프로그램에서는 변환 가능한 UIImageView가있는 UIView를 사용했습니다. 그런 다음'clipsToBounds = YES'를 설정합니다. –

답변

5

당신은 당신이 갓 CGContextRef 생성에 UIImage을 다시 그릴 수 UIView의 종류 및 이벤트 처리 방법에 제스처 인식기를 추가 할 수 있습니다. 이 컨텍스트는 CGContextRotateCTM, CGContextScaleCTM, CGContextTranslateCTM으로 변형되어야하며 제스처 인식기에서받은 매개 변수와 일치하는 매개 변수가 호출됩니다. 그것은 어려운 방법입니다.

또는 이미지에 UIImageView에 스크래치를 만들고 제스처 인식기로 변환 한 다음 CGContextRef으로 렌더링하고 변환 된 이미지를이 컨텍스트에서 가져올 수 있습니다.

분명히 할 수는 있지만 사소하지는 않습니다.

2

UIGestureRecognizer는 단지 UIView에 부착 할 수 있습니다 - UIImage 것은 UIView의 후손이 아니다.

UIView (또는 그 자손)이 접촉을 수신 할 수 있기 때문에 - UIImage 수 없습니다.

Gestures Recognizers Are Attached to a View을 참조하십시오.

사용자가 매개 변수를 조작 한 후에 매개 변수를 기반으로 UIImage을 다시 계산하거나 다시 렌더링 할 수 있습니다. 이를 수행하는 방법 : 실제로 달성하고자하는 것에 달려 있습니다.

관련 문제