He estado usando ese tipo de métodos de forma intermitente pero nunca entendí realmente cómo se comportaban.¿Cómo funciona? (CGRect) convertRect: (CGRect) rect toView: (UIView *) ver el trabajo
Cada vez que trato de usarlos, me encuentro hurgando en la oscuridad cuando intento diferentes aspectos y nunca parece hacer lo que espero.
Por el bien del argumento, estoy tratando de convertir el marco que obtengo de la notificación de UIKeyboard.
En el modo horizontal, consigo este NSRect:
UIKeyboardFrameEndUserInfoKey = NSRect: {{406, 0}, {362, 1024}}
Ahora quiero convertirlo en el rect adecuada (permuta x/y, ancho y alto) por lo que
CGRect compatibleRect = [self convertRect:[[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue] toView:nil];
pero el rect se convierte en:
compatibleRect = CGRect: {{406,406}, {362, 1024}}
Cualquier ayuda se agradece :)
Entiendo cómo funcionan las conversiones. Sin embargo, estoy tratando de entender cómo funcionan esos métodos específicos. Utilicé [self.window convertRect: [[[notif userInfo] objectForKey: UIKeyboardFrameEndUserInfoKey] CGRectValue] fromWindow: nil]; para hacer que funcione Si consulta el siguiente enlace http://developer.apple.com/iphone/library/documentation/uikit/reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html#//apple_ref/occ/instm/UIWindow/convertRect:fromWindow : Menciona cómo se comporta, pero no está muy claro lo que realmente está sucediendo –
En su caso, usted quiere usar convertRect: fromView: not convertRect: toView: así [auto convertRect: rect fromView: nil] tomará los límites , eso es en coordenadas de pantalla y convertirlo a sus coordenadas de vista local. – Elfred