2012-05-28 12 views
6

निम्नलिखित कोड कंटेनर दृश्य को सही ढंग से पिन/ज़ूम करता है, लेकिन केवल 1.0 के पैमाने पर कूदने के बाद। मैं इसे कैसे संशोधित कर सकता हूं ताकि कंटेनर इसके वर्तमान पैमाने से स्केल देख सके?आईओएस - वर्तमान पैमाने से पिंच/ज़ूम

UIPinchGestureRecognizer *twoFingerPinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerPinch:)]; 
[self.container addGestureRecognizer:twoFingerPinch]; 

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
{ 
    _scale = recognizer.scale; 
    CGAffineTransform tr = CGAffineTransformScale(self.view.transform, _scale, _scale); 
    self.container.transform = tr; 
} 
+0

आप अपनी समस्या का समाधान हो गया ? यदि हां तो कृपया कोड साझा करें। – Manthan

उत्तर

9

ज फ़ाइल में जोड़ें:

CGFloat _lastScale; 

मीटर फ़ाइल में

- (id)init { 
    ... 
    _lastScale = 1.0f; 
    ... 
} 

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
{ 
    if (recognizer.state == UIGestureRecognizerStateEnded) { 
     _lastScale = 1.0f; 
     return; 
    } 

    CGFloat scale = 1.0f - (_lastScale - recognizer.scale); 
    CGAffineTransform tr = CGAffineTransformScale(self.view.transform, scale, scale); 
    self.container.transform = tr; 

    _lastScale = recognizer.scale; 
} 
+0

यह काफी काम नहीं करता है। यह 1.0 – soleil

+2

से कम स्केल नहीं करता है _lastScale और identityizer.scale हमेशा काफी समान होते हैं, इसलिए स्केल हमेशा 1.0 के करीब होता है, इसलिए दृश्य केवल मुश्किल से ज़ूम इन या आउट होता है। – soleil

2

यहाँ कैसे मैं यह कर दिया गया है:

- (void)handlePinchGesture:(UIPinchGestureRecognizer *)recognizer { 

    static float initialDifference = 0.0; 
    static float oldScale = 1.0; 

    if (recognizer.state == UIGestureRecognizerStateBegan){ 
     initialDifference = oldScale - recognizer.scale; 
    } 

    CGFloat scale = oldScale - (oldScale - recognizer.scale) + initialDifference; 

    myView.transform = CGAffineTransformScale(self.view.transform, scale, scale); 

    oldScale = scale;  

} 
+0

इसे ज़ूम आउट करने के लिए और कोडिंग की आवश्यकता है। –

संबंधित मुद्दे