Question

J'ai un UIViewController qui est initialisés avec un cadre correct, mais quelque part dans mon code le cadre se mutilée et je vais avoir du mal à trouver où.

Dans des situations comme cela, il est généralement pratique pour watch une variable dans le débogueur, mais je n'ai aucun moyen d'accéder à la controller-> view-> propriété frame à mon avis variable puisqu'il n'est pas une variable, il est un propriété (assez étonnamment)

Forage dans le UIView dans l'affichage des variables montre quelques choses, mais je ne peux rien rapporter au cadre, je pensais que peut-être ce serait en layer mais ce n'est pas.

Est-il possible de surveiller les changements dans une API privée? Je suppose que non, puisque les variables sont essentiellement « cachées » et vous ne pouvez donc pas préciser exactement quoi watch.

Sinon, quelle autre approche pourrais-je utiliser? Je l'ai déjà essayé UIView le sous-classement, la mise en point de vue de mon UIViewController pour pointer vers cette sous-classe et de briser la méthode de setFrame mais il ne semble pas fonctionner.

EDIT: la méthode UIView de travail subclassing SAVIEZ, je devais juste régler la vue de pointer vers mon sous-classe de test dans viewDidLoad et non la méthode init. Laissant cette question ouverte que je ne suis pas sûr que ce soit la meilleure façon d'aborder ce genre de problème ...

Était-ce utile?

La solution 2

J'ai découvert cela peut être fait en utilisant des observateurs de valeur clés.

http://developer.apple.com /library/ios/#documentation/cocoa/conceptual/KeyValueObserving/KeyValueObserving.html

Autres conseils

Sous votre vue que vous souhaitez suivre et réécrire la méthode setFrame:

@implementation MyTableView

- (void)setFrame:(CGRect)frame;
{
    NSLog(@"%@", frame);
    [super setFrame:frame];
}

@end

Ensuite, utilisez le débogueur pour ajouter un point d'arrêt à vérifier et quand il est appelé. Finalement, vous verrez lorsque le cadre se change et d'où le changement vient.

Vous pouvez créer un Ivar, view2 et vous venez d'attribuer à votre point de vue dans votre méthode de loadView. Cela devrait vous permettre de regarder comme une variable normale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top