2010-09-13 8 views
5

Je ne suis pas sûr de savoir comment poser cette question, mais ici va ...addSubview modifier le cadre de vue ajouté

Je suis rendu une page PDF en vue et en l'ajoutant à un UIViewController. Fonctionne bien, sauf pour certains fichiers PDF.

Pour une raison quelconque, le code passe par un chemin différent pour certains fichiers PDF. Cela arrive quand le PDF est créé à partir de PowerPoint. Après l'appel addSubview, il passe par un chemin qui modifie le cadre de la vue PDF. J'ai ajouté un observateur pour PDFViewController.view.frame et la trace goes:

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) 

Pour la plupart des fichiers PDF, cela fonctionne bien. Mais pour certains, le cadre de la vue ajoutée est modifié quelque part dans [UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]. La coordonnée y de l'origine diminue de 43 pixels et la hauteur diminue d'environ 20%. Je ne trouve aucune information sur ce qui se passe à l'intérieur de cette méthode, il semble être interne à UIViewController.

Quelqu'un at-il une idée de la raison de la modification de la trame? Au moins un coup de pouce dans la bonne direction?

Merci d'avance.

EDIT:

Maintenant, je suis sûr qu'il est [UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] qui est la vissant. J'ai implémenté une méthode vide -viewDidMoveToWindow:(UIWindow *)shouldAppearOrDisappear:(BOOL)flag dans PDFViewController et le bug est parti. Mais cela ne ressemble pas à une solution, mais peut conduire à une application rejetée. >. <

Toute personne ayant des suggestions/commentaires?

Répondre

0

43px est la taille de la barre de navigation. L'avez vous?

+0

Oui, mais c'est 43px de plus en dessous de la barre de navigation. En outre, n'est pas la barre de navigation hauteur 44px au lieu de 43px? Quoi qu'il en soit, le correctif de ce problème se trouve ici -> http://stackoverflow.com/questions/3708961/overriding-internal-uiviewcontroller-methods-because-an-internal-method-is-giving – Altealice

+0

Accepter la réponse pour fermer cette . Correction réelle dans http://stackoverflow.com/questions/3708961/overriding-internal-uiviewcontroller-methods-because-an-internal-method-is-giving. – Altealice

Questions connexes