2010-12-22 17 views
22

मेरे पास स्पर्श है जब उपयोगकर्ता स्क्रीन को छूता है तो निर्देशांक लेने के लिए सेट अपगमन विधि। जब मैं UIButton पर स्पर्श करता हूं तो यह बहुत अच्छा काम करता है। मैं इसे कैसे बना सकता हूं ताकि बटन स्पर्शों को ट्रिगर भी कर सके?यूआईबटन ट्रिगर होने पर आप स्पर्श कैसे प्राप्त करते हैं।

उत्तर

50

बटन में ईवेंट हैंडलर जोड़ें, निम्नलिखित की तरह कुछ,

[myButton addTarget:self action:@selector(dragBegan:withEvent:) forControlEvents: UIControlEventTouchDown]; 
[myButton addTarget:self action:@selector(dragMoving:withEvent:) forControlEvents: UIControlEventTouchDragInside]; 
[myButton addTarget:self action:@selector(dragEnded:withEvent:) forControlEvents: UIControlEventTouchUpInside | UIControlEventTouchUpOutside]; 

निम्नलिखित के रूप में की घटनाओं संभाल, आप घटना EV के रूप में नीचे, से स्पर्श बिंदु प्राप्त कर सकते हैं

- (void)dragBegan:(UIControl *)c withEvent:ev { 
    NSLog(@"dragBegan......"); 
    UITouch *touch = [[ev allTouches] anyObject]; 
    CGPoint touchPoint = [touch locationInView:self.view]; 
    NSLog(@"Touch x : %f y : %f", touchPoint.x, touchPoint.y); 
} 

- (void)dragMoving:(UIControl *)c withEvent:ev { 
    NSLog(@"dragMoving......"); 
} 

- (void)dragEnded:(UIControl *)c withEvent:ev { 
    NSLog(@"dragEnded......"); 
} 

यह मेरा स्वयं का जवाब नहीं है। मुझे यह कोड http://sree.cc/iphone/handling-touche-events-for-uibuttons-in-iphone से मिला है और कुछ मामूली परिवर्तन किए हैं।

+0

यह बहुत अच्छा काम किया! बहुत बहुत धन्यवाद!! –

0

यूआईबटन वर्ग को ओवरराइड करने का प्रयास करें और स्पर्श में बीजगन विधि कॉल [सुपर स्पर्श बेगन ..]।

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