2012-01-30 2 views
8

हम किसी वस्तु के "दृश्य" निर्देशांक कैसे प्राप्त करते हैं? उदाहरण के लिए, UIScrollView के भीतर एक टेक्स्टफील्ड का फ्रेम प्राप्त करने से मुझे X और Y को UIScrollView के सापेक्ष मिलेगा, लेकिन मैं एक्स और वाई को जानना चाहता हूं जैसे कि वे दृश्य में दिखाए गए थे।आईओएस में विंडो के सापेक्ष किसी ऑब्जेक्ट का स्थान कैसे प्राप्त करें?

क्या कोई फ़ंक्शन में बनाया गया है?

उत्तर

17

बार जब आप एक CGPoint के रूप में बिंदु है आप कॉल कर सकते हैं:

// Objective-C 
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view 

// C#'s UIView class contains this method: 
PointF ConvertPointToView (PointF point, UIView target); 

पर आप UIView।

आपके विचारों में इंगित करते हुए आपके विचारों को इंगित करते हैं। और

// Objective-C 
[UIWindow keyWindow] 

// C# 
UIWindow.KeyWindow 

में दृश्य पारित करने के लिए यह तो एक CGPoint (सी # में PointF) परिवर्तित वापस आ जाएगी खिड़कियों में समन्वय प्रणाली!

उदाहरण के लिए

तो:

// Objective-C 
CGPoint convertedPoint = [myScrollView convertPoint:textField.frame.origin 
              toView:[UIWindow keyWindow]]; 

// C# 
var convertedPoint = myScrollView.ConvertPointToView (
    textField.Frame.Location, UIWindow.KeyWindow); 

आशा इस मदद करता है :)

2

UIView कुछ convertPoint और convertRect कार्य हैं:

  • - convertPoint:fromView: < --link एप्पल दस्तावेज़ में
  • - convertPoint:toView:
  • – convertRect:toView:

आदि

2

सिर्फ मुझे है, लेकिन यह काम ठीक होगा?

- (CGRect) convertView:(UIView*)view 
{ 
    CGRect rect = view.frame; 

    while(view.superview) 
    { 
     view = view.superview; 
     rect.origin.x += view.frame.origin.x; 
     rect.origin.y += view.frame.origin.y; 
    } 

    return rect; 

} 
+0

नहीं, जब किसी बिंदु पर एक दृश्य UIScrollView के अंदर होता है। –

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

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