2012-01-30 34 views

Trả lời

17

Một khi bạn có điểm như một CGPoint bạn có thể gọi:

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

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

trên bạn UIView.

chuyển vào bạn trỏ đến tọa độ lượt xem của bạn dưới dạng điểm. Và để xem lượt xem trong

// Objective-C 
[UIWindow keyWindow] 

// C# 
UIWindow.KeyWindow 

Điều này sau đó sẽ trả về CGPoint (PointF in C#) được chuyển đổi thành hệ thống tọa độ cửa sổ!

Vì vậy, ví dụ:

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

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

Hope this helps :)

2

UIView có một số convertPoint và convertRect chức năng:

, vv

2

chỉ có thể là tôi, nhưng wouldnt tốt công việc này?

- (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

Không, khi nào đó một chế độ xem nằm trong UIScrollView. –

Các vấn đề liên quan