2012-01-30 10 views

Respuesta

17

Una vez que tenga el punto como CGPoint puede llamar:

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

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

en que UIView.

pase en punto en sus puntos de vista coordenadas como punto. Y para la vista pase en

// Objective-C 
[UIWindow keyWindow] 

// C# 
UIWindow.KeyWindow 

Esto entonces devolverá un CGPoint (PointF en C#) convertido en las ventanas sistema de coordenadas!

Así, por ejemplo:

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

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

espero que esto ayude :)

2

UIView tiene algunas convertPoint y convertRect funciones:

etc.

2

sólo podría ser yo, pero no me este buen trabajo?

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

No, cuando en algún momento una vista se encuentra dentro de un UIScrollView. –

Cuestiones relacionadas