2013-09-23 1 views
0

내 ViewController에서 UIImage 뷰를 잘라내는 Pinch and Pan 제스처를 추가하고 싶습니다. 이미지를 자르려면 해당 이미지를 집기/팬하기 만하면 크기가 조정됩니다.Pinch and Pan to Crop UIImage

나는 현재 그림 가져 오기 버튼과 이미지 선택 버튼을 사용하여 UIImageView 상자에 적절한 이미지를 가져 오지만 핀치를 사용하여 크기를 조정하고 뷰에서 이미지 자르기를 원합니다.

상자를 현재 크기로 고정하고 내부의 이미지 크기를 조정하고 자르기를 원합니다.

추신. 스토리 보드를 사용 중입니다.

다음은 내가 가지고있는 스크린 샷입니다. http://i.stack.imgur.com/chkk5.png

내가 올바른 방향은 스토리 보드의 각 uiimageviews에 슬쩍 및 팬 제스처를 추가 할 것이라고 생각하지만, 이후에 어떻게해야 할되지 않았습니다.

답변

0

내 일반적인 전략은 UIImageView를 클립핑하기 위해 다른 UIView 안에 배치하고 UIPinchGestureRecognizerUIPanGestureRecognizer을 부모 UIView에 추가해야했습니다. 이 중 하나의 이벤트를 수신하면 UIImageView의 transform 속성에 적절한 변환을 적용합니다. 확장하면

, 예를 들어, 다음 작업을 수행 할 것입니다 : 당신은 단순히 때마다보다는 기본 항등 변환을 변환 기존의 확장 때문에

-(void)scale:(UIPinchGestureRecognizer*)pinch 
{ 
float scale = pinch.scale; 
imageView.transform = CGAffineTransformScale(imageView.transform, scale, scale); 
pinch.scale = 1; 
} 

규모를 설정하라는 마지막 단계는 중요합니다. 당신은 당신이이 UIPanGestureRecognizer하고 translationInView: 방법을 사용하여 변환 변환 처리 할 수 ​​있음을 발견한다 (당신은 또한 setTranslationInView:CGPointZero 이것을 다시 설정해야합니다 기억하십시오.

마지막으로, 자른를 얻기 위해/당신이 밖으로 UIImage 가위 차기 뷰의 내용을 캡처 할 수 있습니다 (변환 속성은 iOS 7 이상에서만 적용됩니다) 또는 UIImage를 CGContextRef으로 렌더링하고 동일한 변환을 사용하여 CGContextRef을 변환 할 수 있습니다.