ios - Superview isn't getting touch events -
मेरे विचारों की निम्न परतों के साथ एक साधारण iPad ऐप है:
-
वर्ग दृश्य (100x100px क्षेत्र को शामिल करता है)।
वर्गव्यू को
BaseView पर सबव्यूज़ के रूप में जोड़ा जाता है।
मेरे पास भी
BaseViewController.m फ़ाइल है। इस फाइल में मैंने टच इवेंट्स को संभालने के लिए
ट्यूइंगबैगन और
टच एन्डेड फ़ंक्शन जोड़ा। समस्या यह है, जब मैं
SquareView पर क्लिक करता है, तो टच फ़ंक्शन को बुलाया जाता है, लेकिन जब मैं कहीं और क्लिक करता हूं, उन्हें कॉल नहीं किया जाता।
मेरे पास
userInteractionEnabled = YES के लिए
SquareView है। छू पाने के लिए मुझे इस वैरिएबल की आवश्यकता है।
वर्गव्यू के बाहर के क्षेत्र पर क्लिक करने से छूने वाले कार्यों को ट्रिगर नहीं होता है मुझे इस बात की हैरानी है कि क्यों
userInteractionEnabled चर
BaseView में सेटिंग का कोई प्रभाव नहीं है। यहां क्या हो रहा है? क्या कोई नियम है जो मैं याद कर रहा हूं? मुझे पूरा यकीन है कि मैं इसे एक बिंदु पर काम कर रहा था।
जब उपयोगकर्ता उपव्यू (
SquareView ) पर क्लिक करता है, तो मुझे एक मेनू लॉन्च करना होगा (चलो
MenuView वर्ग कहें) यह विचार यह है, जब उपयोगकर्ता मेनू (या
SquareView ) के बाहर के क्षेत्र पर क्लिक करता है, तो मुझे
MenuView को कॉल करके
[menuView removeFromSuperview ] । क्या आप इस कोड को अपने नियंत्रक में उपयोग करने का प्रयास कर सकते हैं?
इसे आपके लिए काम करना चाहिए।
- (शून्य) दृश्यडिडलोड {[सुपर व्यूडिडलोड]; UIView * subview = [[UIView alloc] initWithFrame: CGRectMake (100, 100, 100, 100)]; Subview.backgroundColor = [UIColor lightGrayColor]; [सबव्यू AddGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: स्वयं कार्रवाई: @ सिलेक्टर (सबव्यू गुच्छे)]]; [Self.view addSubview: subview]; [Self.view addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: स्वयं कार्रवाई: @ सिलेक्टर (देखेंटेक्ड)]]; } - (शून्य) दृश्य टॉच किया गया {एनएसएलॉग (@ "व्यू टेचर्ड"); } - (शून्य) उपविवरण टॉच किया गया {एनएसएलॉग (@ "सबव्यू गुच्छे"); }
Comments
Post a Comment