2015-05-25 9 views
8

में नहीं बुलाया जाता है मुझे पता है कि इसके बारे में पहले से ही कुछ प्रश्न हैं लेकिन मुझे कोई समाधान नहीं मिला। एक बहुत ही सरल कोड है जो मेरी परियोजनाओं में से एक पर ठीक काम करता है लेकिन किसी अन्य पर नहीं:स्पर्शों को UIView उपclass

यहां UIView के उप-वर्ग के लिए कोड है।

import UIKit 

class test : UIView { 

    init(frame: CGRect, color: UIColor) { 
     super.init(frame: frame) 
     self.backgroundColor = color 
     self.userInteractionEnabled = true 
    } 

    required init(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
     super.touchesBegan(touches, withEvent: event) 
     var alert = UIAlertView() 
     alert.title = "lol" 
     alert.message = "lol" 
     alert.addButtonWithTitle("Ok") 
     alert.show() 
    } 
} 

मुझे यकीन है कि समाधान काफी सरल है लेकिन मुझे यह नहीं मिल रहा है।

+0

"काम नहीं कर रहे" से आपका क्या मतलब है? – rdelmar

+0

मेरा मतलब है कि जब मैं दृश्य को स्पर्श करता हूं, तो कोई अलर्ट व्यू दिखाता है –

+0

फ़ंक्शन में एक साधारण println() का उपयोग करने का प्रयास करने के लिए यह देखने के लिए कि क्या यह अलर्टव्यू के साथ कोई बग नहीं है? – Wraithseeker

उत्तर

12

आपको यह सुनिश्चित करना होगा कि userInteractionEnabled आपके दृश्य के सभी पर्यवेक्षणों पर सक्षम है। यदि किसी भी पर्यवेक्षकों के पास यह संपत्ति false पर सेट है, तो टच ईवेंट उनके या उनके किसी भी सबव्यू के लिए संसाधित नहीं किए जाएंगे।

+2

वांछित परिणाम नहीं मिल रहा है, हालांकि मैंने देखा है-> scrollview-> लेआउट देखें, और दोनों विचारों में, मैंने userInteraction को सत्य पर सेट किया है –

4

शायद कुछ पर्यवेक्षकों में userInteractionEnabled "false" पर सेट है?