2009-03-15 5 views
6

पर एक स्पर्श का पता कैसे लगा सकता हूं वर्तमान में मुझे लगता है कि एक स्पर्श कार्यक्रम मुझे यूआईवीव दिखाएगा जहां स्पर्श हुआ था। लेकिन क्या होगा अगर मुझे किसी सर्कल की तरह कुछ आयताकार आकार के स्पर्श का पता लगाना पड़े। मैं ऐसा कुछ करने के बारे में कैसे जाऊं?मैं एक विशिष्ट क्षेत्र

असल में मैं केवल कुछ करना चाहता हूं यदि उपयोगकर्ता किसी परिपत्र क्षेत्र में कहीं भी छूता है जो दिखाई नहीं दे रहा है।

किसी भी मदद/दिशा की सराहना की जाती है, टीआईए!

उत्तर

7

आप ऐसा ही करेंगे। ध्यान दें कि 'locationInView' निर्दिष्ट दृश्य के संबंध में स्पर्श के निर्देशांक वापस कर देगा, इसलिए दृश्य के शीर्ष-बाएं कोने में एक स्पर्श वापस लौटाएगा (0,0) चाहे वह दृश्य ऑनस्क्रीन कहां है।

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 

    // gets the coordinats of the touch with respect to the specified view. 
    CGPoint touchPoint = [touch locationInView:self]; 

    // test the coordinates however you wish, 
    ... 
} 

एक क्षेत्र के खिलाफ परीक्षण करने के लिए आप, गोले के केंद्र को स्पर्श बिंदु से दूरी की गणना तो यह देखना होगा कि इस क्षेत्र त्रिज्या की तुलना में कम था।

+0

धन्यवाद एंड्रयू! कुछ गैर मानक आकारों को समझने पर कोई सुझाव? मुझे लगता है कि यह CGContext के साथ एक आकृति खींचने जैसा कुछ होगा, और उसके बाद किसी भी तरह से जांच कर रहा है? और क्या ? – dizy

+0

आप ड्राइंग के लिए CGContext का उपयोग करेंगे, लेकिन "IsInside" कैल्क के लिए आपको गणित का उपयोग करना होगा। यदि आप आकार को बहुभुज के रूप में व्यक्त कर सकते हैं तो यह बहुत सीधे आगे है। यह लिंक मदद कर सकता है: http://local.wasp.uwa.edu.au/~pbourke/geometry/insidepoly/ –

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

  • कोई संबंधित समस्या नहीं^_^