2010-09-13 6 views
5

no estoy seguro de cómo hacer esta pregunta, pero aquí va ...addSubview la modificación del marco de la vista agregado

Estoy Rendering una página PDF en una vista y agregarlo a un UIViewController. Funciona bien, excepto en algunos archivos PDF.

Por alguna razón, el código pasa por una ruta diferente para ciertos archivos PDF. Sucede cuando el PDF se crea desde PowerPoint. Después de la llamada addSubview, pasa por una ruta que altera el marco de la vista de PDF. He añadido un observador de PDFViewController.view.frame y la traza va:

0 -[PDFViewController observeValueForKeyPath:ofObject:change:context:] 
1 NSKVONotify 
2 -[NSKeyValueObservance observeValueForKeyPath:ofObject:change:context:] 
3 NSKVONotify 
4 -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] 
5 _NSSetRectValueAndNotify 
6 -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] 
7 -[UIView(Internal) _didMoveFromWindow:toWindow:] 
8 -[UIView(Hierarchy) _postMovedFromSuperview:] 
9 -[UIView(Internal) _addSubview:positioned:relativeTo:] 
10 -[UIView(Hierarchy) addSubview:] 
11 (rest of trace is expected) 

Para la mayoría de los archivos PDF, esto funciona bien. Pero para algunos, el marco de la vista agregada se modifica en algún lugar en [UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]. La coordenada y del origen se mueve hacia abajo en 43 píxeles y la altura disminuye alrededor del 20%. No puedo encontrar ninguna información sobre lo que sucede dentro de ese método, parece ser interno a UIViewController.

¿Alguien tiene alguna idea de por qué se está modificando el marco? Al menos un empujón en la dirección correcta?

Gracias de antemano.

EDIT:

Ahora estoy bastante seguro de que es [UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] que se está tirando hacia arriba. Implementé un método -viewDidMoveToWindow:(UIWindow *)shouldAppearOrDisappear:(BOOL)flag vacío en PDFViewController y el error desapareció. Pero esto simplemente no parece una solución, sino que puede llevar a una aplicación rechazada. >. <

¿Alguien con alguna sugerencia/comentario?

Respuesta

0

43px es el tamaño de la barra de exploración. ¿Lo tienes?

+0

Sí, pero hay un extra de 43px debajo de la barra de navegación. Además, ¿la altura de la barra de navegación no es 44px en lugar de 43px? De todos modos, la solución para este problema se encuentra aquí -> http://stackoverflow.com/questions/3708961/overriding-internal-uiviewcontroller-methods-because-an-internal-method-is-giving – Altealice

+0

Aceptando la respuesta para cerrar esto . Solución real en http://stackoverflow.com/questions/3708961/overriding-internal-uiviewcontroller-methods-because-an-internal-method-is-giving. – Altealice

Cuestiones relacionadas