2010-09-13 13 views
5

non sono sicuro di come porre questa domanda, ma qui va ...addSubview modificando cornice della vista aggiunto

sto il rendering di una pagina PDF in una visione e aggiungendolo a un UIViewController. Funziona bene, ad eccezione di alcuni file PDF.

Per qualche motivo, il codice passa attraverso un percorso diverso per alcuni file PDF. Succede quando il PDF viene creato da PowerPoint. Dopo la chiamata di addSubview, passa attraverso un percorso che altera la cornice della vista PDF. Ho aggiunto un osservatore per PDFViewController.view.frame e la traccia 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) 

Per la maggior parte dei file PDF, questo funziona bene. Ma per alcuni, la cornice della vista aggiunta viene modificata da qualche parte in [UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]. La coordinata y dell'origine si abbassa di 43 pixel e l'altezza viene ridotta di circa il 20%. Non riesco a trovare alcuna informazione su cosa succede all'interno di quel metodo, sembra essere interno a UIViewController.

Qualcuno ha idea del motivo per cui il frame viene modificato? Almeno una spinta nella giusta direzione?

Grazie in anticipo.

EDIT:

Ora sono abbastanza sicuro che sia [UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] che sta avvitando in su. Ho implementato un metodo vuoto -viewDidMoveToWindow:(UIWindow *)shouldAppearOrDisappear:(BOOL)flag in PDFViewController e il bug è scomparso. Ma questo non sembra una soluzione, ma può portare a un'app rifiutata. >. <

Chiunque abbia suggerimenti/commenti?

risposta

0

43px è la dimensione della barra di navigazione. Ce l'hai?

+0

Sì, ma è un extra 43 px al di sotto della barra di navigazione. Inoltre, l'altezza della barra di spostamento non è 44px invece di 43px? In ogni caso, la soluzione per questo problema si trova qui -> http://stackoverflow.com/questions/3708961/overriding-internal-uiviewcontroller-methods-because-an-internal-method-is-giving – Altealice

+0

Accettare la risposta per chiudere questo . Correzione effettiva in http://stackoverflow.com/questions/3708961/overriding-internal-uiviewcontroller-methods-because-an-internal-method-is-giving. – Altealice

Problemi correlati