2011-06-16 13 views
20

के लिए अंदर स्पर्श करें मैं Touch Up InsideUIButton के समान स्पर्श ईवेंट को लागू करने का प्रयास कर रहा हूं। मैंने touchesBegan:withEvent का उपयोग करके कुछ कोड देखे हैं, लेकिन ऐसा लगता है कि मुझे स्क्रीन पर अपनी उंगली को थोड़ा सा स्लाइड करने की आवश्यकता है।UIImageView

- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { 
    NSLog(@"Image touched!"); 
} 

सादर: मैं वास्तव में सिर्फ छवि

संहिता में छूना चाहता हूँ!

+1

क्या कोई विशेष कारण है कि आप कस्टम शैली और छवि के साथ 'UIButton' का उपयोग नहीं कर सकते हैं? – pmdj

+0

असल में नहीं, लेकिन मुझे आश्चर्य है कि ऐसा करने का कोई और तरीका है या नहीं। – Claudio

+0

यदि आपको 'UIButton' प्रदान करने वाली सुविधाओं की आवश्यकता नहीं है, तो आप इसके बजाय अधिक नंगे-हड्डियों' UIControl' को उपclass या उपयोग कर सकते हैं। 'यूआईसींट्रोल' सभी गंदे स्पर्श राज्य प्रबंधन का ख्याल रखता है, इसलिए आपको यह नहीं करना है। इसे स्वयं करने का अर्थ यह भी है कि आपका यूआई अन्य सभी ऐप्स के लिए थोड़ा अलग व्यवहार करेगा, जो उपयोगकर्ता को भ्रमित कर सकता है। – pmdj

उत्तर

46

UIImageView पर स्पर्श प्राप्त करने के लिए आप इशारा का उपयोग कर सकते हैं।

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] 
         initWithTarget:self action:@selector(ClickEventOnImage:)]; 
     [tapRecognizer setNumberOfTouchesRequired:2]; 
     [tapRecognizer setDelegate:self]; 
     //Don't forget to set the userInteractionEnabled to YES, by default It's NO. 
     myImageView.userInteractionEnabled = YES; 
     [myImageView addGestureRecognizer:tapRecognizer]; 

ClickEventOnImage फ़ंक्शन लागू करें।

-(void) ClickEventOnImage:(id) sender 
{ 

} 
+0

+1 ग्रेट! साझा करने के लिए धन्यवाद, बहुत अच्छा समाधान! :) – jpswain

+0

मुझे बहुत समय बचाया! धन्यवाद –

+1

वह चट्टानों। हैंडलर विधि में, आप स्थान इनव्यू का उपयोग करके इशारा पहचानकर्ता से पूछकर टैप का स्थान प्राप्त कर सकते हैं: (UIView *) दृश्य; स्क्रॉलव्यू में, लौटा समन्वय स्क्रॉल सामग्री ऑफ़सेट शामिल है। – Oscar

6

UIImageView के रूप में अपनी userInteractionEnabled डिफ़ॉल्ट रूप से NO पर सेट है इस बारे में कुख्यात है। आप

imageView.userInteractionEnabled = YES; 

करके इसे सक्षम करना होगा और फिर आप छूता है संभाल करने के लिए इशारा recognizers या सामान्य touches* तरीकों का उपयोग कर सकते हैं।