Frage

Ich habe eine UIViewController, die mit einem korrekten Rahmen, aber irgendwo in meinem Code initialisiert wird der Rahmen verstümmelt wird und ich habe Schwierigkeiten, herauszufinden, wo.

In Situationen wie dieser ist es in der Regel praktisch eine Variable im Debugger watch jedoch habe ich keine Möglichkeit, die für den Zugriff auf Controller-> view-> Frame-Eigenschaft in meiner variable Ansicht, da es sich nicht um eine Variable ist, es ist ein Eigenschaft (überraschenderweise)

Bohren in die UIView in der Variablen-Anzeige zeigt ein paar Dinge, aber nichts, was ich auf den Rahmen beziehen kann, dachte ich vielleicht, dass in layer sein würde, aber es ist nicht.

Gibt es eine Möglichkeit für Änderungen in einem privaten API zu sehen? Ich denke nicht, da die Variablen im Wesentlichen ‚versteckt‘ sind und so kann man nicht genau, was zu watch angeben kann.

Alternativ was anderer Ansatz könnte ich verwenden? Ich habe bereits versucht, UIView Subklassen, meine UIViewController Ansicht Punkt zu dieser Unterklasse einstellen und auf dem SetFrame Verfahren zu brechen, aber es schien nicht zu arbeiten.

EDIT: der Subklassen UIView Methode funktioniert, habe ich nur den Blick auf Punkt auf meine Testunterklasse in viewDidLoad zu setzen und nicht die init Methode. Verlassen diese Frage offen, wie ich bin nicht sicher, ob dies der beste Weg, diese Art von Problem zu nähern ...

War es hilfreich?

Lösung 2

Andere Tipps

Subclass Sie die Ansicht, die Sie wollen die SetFrame Methode zu verfolgen und zu umschreiben:

@implementation MyTableView

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

@end

Verwenden Sie dann den Debugger einen Haltepunkt, um es hinzuzufügen und zu überprüfen, wenn es aufgerufen wird. Schließlich werden Sie sehen, wenn der Rahmen geändert wird und wo die Änderung kommt.

Sie könnten eine Ivar, view2 erstellen und nur zu Ihrer Ansicht in Ihrer loadView Methode zugewiesen es. Das sollten Sie ermöglicht es wie eine normale Variable zu beobachten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top