काम नहीं कर रहा है मुझे एक समस्या है जहां मेरे UILaprollView में मेरे UILabels पर मेरे UILabels पर मेरा UITapGestureRecognizer इसकी विधियों को कॉल नहीं कर रहा है।UIScrollView के सबव्यू में UILabels पर UITapGestureRecognizer
दृश्य पदानुक्रम इस प्रकार है:
- scrollview (UIScrollView)
- contentView (UIView)
- testLabel (UILabel) - यहाँ है जहां UITapGestureRecognizer जुड़ा हुआ है
- contentView (UIView)
मैं इस समस्या को उजागर करने के
// Set scrollview size - Added in Storyboad
[scrollView setContentSize:CGSizeMake([arrayOfVerbs count]*self.view.frame.size.width, scrollView.contentSize.height)];
[scrollView setCanCancelContentTouches:YES]; // Tried both yes and no
[scrollView setPagingEnabled:YES];
// Add content view
UIView *contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height)];
[scrollView addSubview:contentView];
// Add test UILabel
UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];
[testLabel setBackgroundColor:[UIColor redColor]];
[testLabel setText:@"Test touch"];
[testLabel setUserInteractionEnabled:YES];
[contentView addSubview:testLabel];
// Add gesture recogniser
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(playSound:)];
singleTap.numberOfTapsRequired = 1;
[testLabel addGestureRecognizer:singleTap];
एक उदाहरण के लिए नीचे कोड आसुत है और इस विधि कि टैप जेस्चर recogniser बुलाना चाहिए
- (void)playSound:(UITapGestureRecognizer *)sender {
NSLog(@"play sound");
if(sender.state == UIGestureRecognizerStateEnded)
{
int pronounNumber = [sender.view tag];
int exampleNumber = (int)sender.view.frame.origin.x%(int)self.view.frame.size.width;
NSLog(@"Pronoun is %i and example is %i", pronounNumber, exampleNumber);
}
}
इस विधि कभी नहीं कहा जाता है जब मैं UILabel पर छूने की कोशिश की।
मैंने इस thread द्वारा सुझाए गए स्क्रॉल व्यू पर YES और NO दोनों को संपत्ति कैनकेलकंटेंट टच को सेट करने का प्रयास किया है, लेकिन यह अभी भी काम नहीं कर रहा है।
अजीब बात यह है कि, यदि मैं scrollView के बाहर UILabel जोड़ता हूं, तो इशारा पहचानकर्ता काम करता है! तो समस्या केवल मेरी सामग्री में होती है देखें जो मेरे scrollView का सबव्यूव है।
मैं ऑटो लेआउट का उपयोग कर रहा हूं, अगर यह कोई अंतर हो सकता है?
धन्यवाद!
सेटिंग [सामग्री दृश्य सेटक्लिपबाउंड: हाँ] सेट करने का प्रयास करें; और देखें कि 'ContentView' के अंदर आपका' लेबल' दृश्यमान है, यदि नहीं, तो आपका 'लेबल' स्पर्श क्षेत्र में नहीं है, अपने आकार बदलने वाले गुणों को समायोजित करें .. – iphonic