2009-07-14 8 views
0

Ich versuche, eine benutzerdefinierte UIView zu erstellen, die in einer Feder gespeichert wird, damit ich es mithilfe von Interface Builder positionieren kann.iPhone benutzerdefinierte UIView Grenzen

Ich habe eine Klasse namens RippleView erstellt, die UIView erweitert. Ich möchte diese Ansicht als eine Unteransicht mithilfe von Interface Builder positionieren. Um dies zu tun, habe ich eine neue Ansicht in meine vorhandene Ansicht in Interface Builder gezogen und gab ihr die Klassenidentität RippleView. Ich habe dann meinen RippleView-Ausgang mit der gerade erstellten Ansicht verbunden.

In der RippleView-Klasse habe ich initWithCoder implementiert, das nichts anderes tut als [super initWithCoder ...] aufzurufen. In watchFromNib gehe ich voran und initialisiere meinen Code.

Jetzt, aus irgendeinem Grund, wenn ich versuche, die Grenzen der RippleView in watchFromNib zu überprüfen, bekomme ich lächerliche Werte (0 Breite und 1081171968 Höhe). Diese Grenzen ändern sich in drawRect nicht, daher glaube ich nicht, dass die Ansicht nicht initialisiert wird. Ich erhalte ähnliche Werte in meinem touchesMoved Event-Handler.

Ich hatte keine Probleme, wenn ich programmgesteuert die Unteransicht (initWithFrame) erstellte. Was könnte dazu führen, dass die Frame-Grenzen verrückt spielen?

Antwort

2

Gelöst! Das Problem hatte nichts mit dem Code zu tun. Die UIView-Grenzen sind Floats und ich habe sie als Ganzzahlen gedruckt. Es sind Dinge wie diese, die die Programmierer von den Aussetzern trennen: p

0

Können Sie Ihre initWithCoder: Implementierung posten? Wenn Sie den Wert von self nicht festlegen oder wenn Sie initWithCoder: falsch geschrieben haben, sehen Sie möglicherweise diese Art von Problemen. Haben Sie versucht, in initWithCoder einen Haltepunkt zu setzen: um sicherzustellen, dass er aufgerufen wird?