2013-10-03 8 views
9

मैं व्यवस्था की imageview की एक श्रृंखला चल रहा है, और यह[UITapGestureRecognizer टैग]: गैर मान्यता प्राप्त चयनकर्ता उदाहरण

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] 
             initWithTarget:self action:@selector(action:)]; 
[tapRecognizer setNumberOfTouchesRequired:1]; 
[tapRecognizer setDelegate:self]; 
imageView.userInteractionEnabled = YES; 
[imageView addGestureRecognizer:tapRecognizer]; 

करने के लिए एक TapView पहचानकर्ता बताए के लिए भेजा है और मैं के रूप में परिभाषित किया है चयनकर्ता:

-(void) action:(id)sender 
    { 
    NSLog(@"TESTING TAP"); 
    NSLog (@"%d",[sender tag]); 
    } 

यह क्रैश हो रहा है और मुझे त्रुटि संदेश मिल रहा है: -

[UITapGestureRecognizer tag]: unrecognized selector sent to instance 0x145d0210

उत्तर

28

आप इस का उपयोग कर सकते हैं अपने दृश्य की संपत्ति का प्राप्त करने के लिए,

आप आज़मा सकते हैं, ..

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] 
             initWithTarget:self action:@selector(action:)]; 
[tapRecognizer setNumberOfTouchesRequired:1]; 
[tapRecognizer setDelegate:self]; 
imageView.userInteractionEnabled = YES; 
imageView.tag = 1111; 
[imageView addGestureRecognizer:tapRecognizer]; 

और कार्रवाई में यह कोशिश करें ..

-(void) action:(id)sender 
    { 
    NSLog(@"TESTING TAP"); 
    UITapGestureRecognizer *tapRecognizer = (UITapGestureRecognizer *)sender; 
    NSLog (@"%d",[tapRecognizer.view tag]); 
    } 

Explaination:

UITapGestureRecognizertag तरह संपत्ति नहीं है। लेकिन इसकी संपत्ति view है, इस संपत्ति से आप उस दृश्य को देख सकते हैं जिसके साथ UITapGestureRecognizer जुड़ा हुआ था।

आशा है कि यह आप

+0

yup यह काम करता है:) धन्यवाद .... – Wodjefer

+0

आपका स्वागत है और किसी भी मदद के लिए स्वतंत्र महसूस करें। और कृपया उत्तर स्वीकार करें ताकि अन्य उपयोगकर्ता आपकी पोस्ट –

+0

से सहायता प्राप्त कर सकें विस्तार से स्पष्टीकरण के लिए धन्यवाद –

7

न तो UITapGestureRecognizer और न ही UIGestureRecognizertag नामक एक संपत्ति या विधि घोषित करता है।

आप इसका उपयोग नहीं कर सकते। यही कारण है कि आपको त्रुटि मिल रही है।

संबंधित नोट पर। मुझे वास्तव में tag सामान्य रूप से उपयोग करना पसंद नहीं है। tag का उपयोग किये बिना आप जो भी कर रहे हैं, उसे करने का हमेशा एक बेहतर तरीका है।

+1

CUD यू एक बेहतर तरीका सुझाव है plzz :) टिप्पणी के लिए धन्यवाद में कहा गया है। – Wodjefer

+0

@Wodjefer आप 'टैग' के साथ क्या करने का प्रयास कर रहे हैं? यानी आप इसका उपयोग क्यों कर रहे हैं? अगर मुझे पता है कि मैं एक बेहतर तरीका सुझा सकता हूं। – Fogmeister

+0

दरअसल, मेरे पास छविदृश्य की एक श्रृंखला है और जब यह छविदृश्य के माध्यम से स्क्रॉल करता है तो मैं पूर्वावलोकन प्राप्त करता हूं .. हमारे पास आईफोन गैलरी (ios7) – Wodjefer

3

आप UITapGestureRecognizer की tag संपत्ति नहीं मिल सकता है बल्कि आप

-(void)action:(id)sender 
    { 
    NSLog(@"TESTING TAP"); 
    NSLog (@"%d",[[sender view]tag]); 

    } 
+0

इसके लिए बहुत बहुत धन्यवाद। अन्य तरीकों से मेरे लिए काम नहीं किया! – shrishaster

10

में मदद मिलेगी बस following..and के साथ अपने चयनकर्ता-प्रक्रिया में परिवर्तन यह काम करेंगे

tapgesture पूरे दृश्य जो उपयोग किया जाता है होगा .. और फिर आप टैग संपत्ति प्राप्त कर सकते हैं इसे से के रूप में मैं निम्नलिखित

-(void)action:(UITapGestureRecognizer *)tapGesture{ 

    NSLog(@"TESTING TAP"); 
     NSLog (@"%d",tapGesture.view.tag); 

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