0

가로 세로 비율을 유지하지 않고 크기를 조정하기 위해 집어 넣을 이미지보기가 있습니다. 이렇게하려면 다음 중 하나를 수행하는 것이 가능할 것으로 생각했습니다.동일한 UIImageView에서 2 UIPinchGestureRecognizers 사용

  1. 두 개의 집기 인식기를 사용합니다. 하나는 수평으로 늘어나고 다른 하나는 수직으로 나타냅니다.
  2. 하나의 핀치 인식기를 사용하지만 두 변환을 차례로 적용하십시오. 어떤 이유

    - (void) pinch:(UIPinchGestureRecognizer *)recognizer { 
        static CGRect initialBounds; 
    
        if (recognizer.state == UIGestureRecognizerStateBegan) 
        { 
         initialBounds = imageView.bounds; 
        } 
        CGFloat factor = [(UIPinchGestureRecognizer *)recognizer scale]; 
    
        //scale horizontally 
        CGAffineTransform zt = CGAffineTransformScale(CGAffineTransformIdentity, 
                    factor-(1.0-factor), 1.0); 
        imageView.bounds = CGRectApplyAffineTransform(initialBounds, zt); 
    
        //now scale vertically 
        zt = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, factor); 
        imageView.bounds = CGRectApplyAffineTransform(initialBounds, zt); 
        return; 
    } 
    

    , 유일한 수직으로 수행되고있다 (마지막)를 변환 :

여기 내 핀치 처리 기능입니다. 두 번째 CGRectApplyAffineTransform의 첫 번째 매개 변수를 imageView.bounds로 변경하려고했지만 여전히 작동하지 않았습니다.

아무도 내가 잘못 가고 있다고 말할 수 있습니까?

또한 두 개의 집게 인식기를 사용할 때 동일한 현상이 발생합니다. 실제로 한 개만 인식됩니다.

감사합니다.

답변

0

두 번째 것은 CGAffineTransformIdentity로 시작합니다. 대신 zt를 입력하십시오.