2011-06-28 13 views
19

पर परीक्षण करने के लिए कैसे परीक्षण करें मेरे पास UIImageView है और मेरे पास स्क्रीन पर एक CGPoint है। मैं उस बिंदु का परीक्षण करने में सक्षम होना चाहता हूं यह देखने के लिए कि यह UIImageView में है या नहीं। क्या सबसे अच्छा तरीका होगा यह करने का? कृपया सहायता कीजिए?किसी बिंदु को

उत्तर

42

CGPoint नहीं है एक संदर्भ बिंदु के साथ अच्छा है। अपनी बात खिड़की के निर्देशांक में है तो आप

CGPoint locationInView = [imageView convertPoint:point fromView:imageView.window]; 
if (CGRectContainsPoint(imageView.bounds, locationInView)) { 
    // Point lies inside the bounds. 
} 

का उपयोग कर इसे प्राप्त कर सकते हैं तुम भी स्विफ्ट 3 में pointInside:withEvent: विधि कॉल कर सकते हैं

if ([imageView pointInside:locationInView withEvent:nil]) { 
    // Point lies inside the bounds 
} 
2
if(CGRectContainsPoint([myView frame], point)) 

जहां बिंदु अपने CGPoint है और MyView अपने UIImageView

+0

इस करता है, तो काम नहीं करेगा आपके पास ओवरलैपिंग विचार हैं। –

1

है मैं मान लेंगे आप एक पूर्ण स्क्रीन खिड़की है (सुंदर उचित, मुझे लगता है)। तब

CGPoint point = ... 
UIWindow window = ... 
UIImageView imageView = ... 
CGPoint transformedPoint = [window convertPoint:point toView:imageView]; 

, आप अगर बिंदु छवि को देखने के फ्रेम में इस प्रकार है परीक्षण कर सकते हैं: तो फिर तुम बिंदु खिड़की के समन्वय अंतरिक्ष से UIImageView के लिए प्रयोग कर बदल सकता है

if(CGRectContainsPoint(imageView.frame, transformedPoint)) 
{ 
    // do something interesting.... 
} 
1

let isPointInFrame = UIScreen.main.bounds.contains(newLocation) 
संबंधित मुद्दे