2010-12-01 6 views
0

Je vais avoir des problèmes avec le déplacement d'une vue:cadre de positionnement ne fonctionne pas après passage à iOS 4.2

- (void)viewDidLoad { 

    CGRect newFrame = self.popUp.view.frame; 
    newFrame.origin.y = self.view.bounds.size.height; 
    self.popUp.view.frame = newFrame; 

    [[self view] addSubview:[self.popUp view]]; 

    [super viewDidLoad]; 
} 

Cela devrait mettre la sous-vue popUp sous l'écran en cours, mais il ne semble pas être le déplacer . Je suis presque certain que cela fonctionnait avant le 4.2. Des idées sur ce qui pourrait se passer? Désolé pour le vague. Si vous avez des questions, n'hésitez pas à les poser.

Répondre

0

Avez-vous essayé de déplacer [super viewDidLoad] vers le haut de la méthode? Lorsque vous appelez la méthode d'une superclasse peut affecter l'état des variables héritées.

Bon après sur ce point: `[super viewDidLoad]` convention

+0

Hmm, n'a pas fait l'affaire. Merci pour le lien si. Bonne info – emachine

0

On dirait que vous vous déplacez donc le haut de popUp.view est au bas de self.view. Et puis, lorsque vous ajoutez popUp.view à self.view, vous le placez "à l'extérieur" de self.view. Vous pouvez vérifier cela par newFrame.origin.y = self.view.bounds.size.height - 100; et voir si elle apparaît.

L'une des raisons pour lesquelles votre vue n'apparaît pas comme précédemment peut être que vous avez modifié clipsToBounds. J'imagine qu'il peut aussi y avoir une autre optimisation de dessin qui se déroule et ne dessine pas de vues qui sont hors limites et non visibles.

Si vous voulez que votre pop-up à apparaître en dessous d'une vue, je pense qu'une meilleure approche serait de soit placer votre pop au bas de votre point de vue:

newFrame.origin.y = self.view.bounds.size.height - newFrame.size.height; 

ou en plaçant la vue pop-up dans la vue d'ensemble de self.view. Dans ce cas, vous voudrez probablement gérer l'affichage dans le contrôleur de l'aperçu.

Questions connexes