2012-05-14 4 views
0

문자라고하는 UIView이 있습니다. 이보기에서 사용자는 서브 뷰로 여러 개의 UIImageView을 추가 할 수 있습니다. Pinch, Move 및 Rotate에 대한 제스처 방법을 만들었습니다. 제스처 방법이 문자보기에 추가되었습니다. 내가 제스처 translationInView 속성을 사용하고 있는데 잘 작동 이동에 대한동시에 여러 번보기 조정

! 내 문제는 scalling입니다.

UIImageViews 개인이 괜찮 스케일링, 더 문제는,하지만 어떻게 그들 모두를 확장 없습니다 ??

문자 뷰를 크기 조정하려고했는데 비례하여 모든 하위 뷰를 크기 조정했지만 캐릭터 뷰를 변경하고 싶지 않습니다. 캔버스로 사용하여 문자를 구성하려면 UIImageView을 배치해야합니다. 문자를 CGAffineTransformScale으로 변경하면 내가 추가 한 모든 새로운 ImageView에 동일한 축척이 적용됩니다.

나는이 시도했지만 작동하지 않습니다

if ([gesture state] == UIGestureRecognizerStateBegan || [gesture state] == UIGestureRecognizerStateChanged) { 
     CGFloat customScale = gesture.scale; 
     for (UIImageView *singleView in [self.devoCharacter subviews]) { 
      singleView.frame = CGRectMake(singleView.frame.origin.x/customScale, singleView.frame.origin.y /customScale, singleView.frame.size.width /customScale , singleView.frame.size.height /customScale); 
      [gesture setScale:1]; 
     } 
} 

내가 각보기의 크기와 이런 식으로 자신의 상대 거리를 줄이고 싶어하지만, 모든 것은 좌표의 원점에서 확장합니다.

그때 나는이 시도 :

if ([gesture state] == UIGestureRecognizerStateBegan || [gesture state] == UIGestureRecognizerStateChanged) { 
     CGFloat customScale = gesture.scale; 
     for (UIImageView *singleView in [self.devoCharacter subviews]) { 
      singleView.transform = CGAffineTransformScale(singleView.transform, customScale, customScale); 
      [gesture setScale:1]; 
     } 
} 

을하지만이 독립적으로 각 뷰를 확장하고 자신의 상대 거리를 유지하지 않습니다. 각보기의 크기를 비례하여 조정할 수 있습니까? 상대 거리도 유지하고 있습니까?

답변

0

좋아, 나는 그것을 수행하는 방법을 얻었다. 모든 단일보기의 비율을 조정 한 다음 그 비율에 따라 비율을 조정하십시오.

 for (Part *singleView in [self.canvas subviews]) { 
      singleView.transform = CGAffineTransformScale(singleView.transform, customScale, customScale); 
      singleView.center = CGPointMake(singleView.center.x * customScale, singleView.center.y * customScale); 
      [gesture setScale:1]; 
     } 
: 이것은 내 문제를 해결