2012-11-16 11 views
8

सबव्यू के लिए सक्षम है मेरे पास एक दृश्य और दृश्य है। UserInteractionenabled = नहीं और दृश्य में एक बटन जोड़ा गया है। मुझे केवल बटन पर क्लिक करना होगा। क्या केवल बटन के लिए बातचीत को सक्षम करना संभव है।उपयोगकर्ता इंटरैक्शन केवल

उत्तर

12

एक दृश्य स्पर्श नहीं प्राप्त कर सकता है जब तक कि userInteractionEnabledYES दृश्य और इसके सभी पर्यवेक्षकों को UIWindow ऑब्जेक्ट तक देखने के लिए स्पर्श न हो।

आप बटन रखने के लिए UIView का उप-वर्ग बना सकते हैं, और इसे hitTest:withEvent: ओवरराइड करके बटन के बाहर छूने को अनदेखा कर सकते हैं। उदाहरण:

@interface MyView : UIView 

@property (nonatomic, strong) IBOutlet UIButton *button; 

@end 


@implementation MyView 

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
    UIView *subview = [super hitTest:point withEvent:event]; 
    return subview == self.button ? subview : nil; 
} 

@end 
+0

यदि पर्यवेक्षण में कोई बटन है तो यह आपकी सहायता नहीं करेगा, जो कि इसके सबव्यूव में बटन के नीचे है (जैसे किसी पर्यवेक्षण के ऊपर खोला गया कोई भी मेनू) यदि आप सबव्यू में एक को दबाते हैं और केवल उसे पहचानें, यह अभी भी पर्यवेक्षण में बटन को आग लगाएगा। – Curnelious

+0

ग्रेट, टिप के लिए धन्यवाद ने मुझे बहुत समय बचाया – KeranMarinov

+0

अच्छा है, यह – atulkhatri

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