UIView

2011-02-17 9 views
11

ज़ूम इन और आउट करने के लिए एक सरल विधि बटन के साथ UIView को ज़ूम इन और आउट करने का सबसे अच्छा तरीका क्या है।UIView

-(void)viewDidLoad 
{ 
UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] 
              initWithTarget:self 
              action:@selector(twoFingerPinch:)] 
              autorelease]; 

[[self view] addGestureRecognizer:twoFingerPinch]; 
} 

इस करके आप एक उदाहरण है, जिसमें दो उंगली उत्तेजना का ख्याल रखना होगा प्रारंभ किया है -: तुम बस को लिखने के लिए है: (Ei

(IBAction)zoomin:(int)distance 
{ 
method here 
} 
(IBAction)zoomout:(int)distance 
{ 
and here 
} 

उत्तर

25

यह दो उंगली इशारा पहचानकर्ता उपयोग किया जा सकता स्क्रीन (या देखें आप इस विधि का आवेदन कर रहे हैं, जिस पर) पर अब अगर आप दो उंगलियों मान्यता दी है कि क्या करना है परिभाषित:

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer 
{ 
    NSLog(@"Pinch scale: %f", recognizer.scale); 
    CGAffineTransform transform = CGAffineTransformMakeScale(recognizer.scale, recognizer.scale); 
             // you can implement any int/float value in context of what scale you want to zoom in or out 
    self.view.transform = transform; 
} 

टी वह परिभाषित विधि से ऊपर स्वचालित रूप से नहीं कहा जाता है UIButton कार्यों के माध्यम से, लेकिन आप सख्ती से तो बस ऐसा करने IBAction पर ज़ूम उपयोग करना चाहते हैं यह सादगी साथ आपकी समस्या का समाधान होगा:

-(IBAction)methodCalledOnClickingUIButton:(id)sender 
{ 
    if(sender==zoomInButton) 
    { 
     scaleValue++; 
    } 
    else if(sender==zoomOutButton) 
    { 
     scaleValue--; 
    } 
    CGAffineTransform transform = CGAffineTransformMakeScale(scaleValue,scaleValue); 
    self.view.transform = transform; 
} 

कहाँ scaleValue किसी भी नाव मूल्य है .. आप इसे अपने आवेदन की आवश्यकता के अनुसार सेट कर सकते हैं! मुझे आशा है कि यह आपके लिए ठीक काम करेगा! :)

+1

आपका उत्तर बहुत अच्छा है, लेकिन यह आसानी से ज़ूम नहीं करता है: Ie प्रत्येक बार जब आप ज़ूमिंग रोकते हैं - चुटकी इशारा करते हैं, कोई भी राज्य सहेजता नहीं है और यह 0 को पहचानकर्ता.scale रीसेट करता है: इस प्रकार हर बार हेस्टर बंद होने पर बहुत शुरुआत से ज़ूम शुरू हो जाएगा। । । । –

+0

मैं ज़ूम करने के लिए चाहता हूं लेकिन ऊंचाई/चौड़ाई नहीं बढ़ सकती है लेकिन दृश्य ज़ूम होना चाहिए। क्या यह संभव है? –

1

स्विफ्ट 3, 4

// का पता लगाने/बाहर में ज़ूम UIView के लिए दो उंगली से, यहाँ उदाहरण मुख्य दृश्य पर सुनने (दृश्य)

//override func viewDidLoad() { 

    var pinchGesture = UIPinchGestureRecognizer() 
    pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(pinchedView)) 
    view.isUserInteractionEnabled = true 
    view.addGestureRecognizer(pinchGesture) 

//} 

// श्रोता

@objc func pinchedView(sender:UIPinchGestureRecognizer){ 
    if(sender.scale > 1){ 
     print ("Zoom out") 
    }else{ 
     print("Zoom in") 
    } 
}