ver ventanas una todas solo pasar otra navegar multiples las entre como cierra cerrar aplicaciones aplicacion abiertas iphone objective-c ios uiwindow

una - ventanas multiples iphone



iOS: ¿obtiene la ubicación de una vista en una ventana? (6)

¿ConvertPoint de UIView: toView: no funciona? Asi que:

CGPoint windowPoint = [myView convertPoint:myView.bounds.origin toView:myWindow];

Tengo una UIView que muestra una ventana emergente después de que se ha hecho clic. La ventana emergente debe agregarse a la ventana principal de UI para asegurarse de que va por encima de todo lo demás.

Quiero que la posición de esta ventana emergente sea relativa a mi UIView, así que necesito saber la ubicación relativa de mi UIView en la ventana.

Pregunta: ¿Cómo puedo encontrar la ubicación de una UIView en una ventana UI cuando la UIView no está directamente en la ventana UI (está dentro de la vista de mi viewController)?


Debajo de la implementación de Xamarin.iOS trabajó para mí.

CGRect GetRectAsPerWindow(UIView view) { var window = UIApplication.SharedApplication.KeyWindow; return view.Superview.ConvertRectToView(view.Frame, window); }

Pase la vista cuyo marco desea con respecto a Ventana.


El uso puede usar el método UIView covertRect: toView para convertir al nuevo espacio de coordenadas. Hice algo muy similar:

// Convert the co-ordinates of the view into the window co-ordinate space CGRect newFrame = [self convertRect:self.bounds toView:nil]; // Add this view to the main window [self.window addSubview:self]; self.frame = newFrame;

En mi ejemplo, self es una vista que se elimina de su superView y se agrega a la ventana en la parte superior de donde estaba. El parámetro nil en toView: significa usar la ventana en lugar de una vista específica.

Espero que esto ayude,

Dave


Necesitaba hacer esto en Xamarin.iOS

Para cualquiera que busque una solución allí, lo que finalmente funcionó para mí fue:

CGRect globalRect = smallView.ConvertRectToView(smallView.Bounds, rootView);


Puede pedirle a su .superview que convierta su origin para usted para usted

CGPoint originGlobal = [myView.superview convertPoint:myView.frame.origin toView:nil];


CGRect myFrame = self.superview.bounds;