Frage

Ich hatte eine schöne UIScrollView in meiner Feder, die gut gearbeitet. Dann hatte ich ein paar ganz besondere Bedürfnisse und subclassed UIScrollView. In meinem Nib, änderte ich die Klasse in der Identität Inspektoren meine Unterklasse.

Aber aus irgendeinem Grund, meine -initWithFrame: Methode wird nie aufgerufen, wenn die Spitze loader diese Objekte alle aus der Feder aufbaut. Eigentlich habe ich nichts im Augenblick in meiner Unterklasse ändern. Und die Scroll-Ansicht funktioniert gut. Erwarten Sie, dass es eine leere UIScrollView zu sein scheint, auch wenn ich die Spitze gesagt, es sollte ein SpecializedUIScrollView für Testzwecke sein.

Gibt es etwas, was ich berücksichtigen müssen, wenn ein UIScrollView Subklassen während immer noch eine Nib-Datei es in der richtigen Perspektive zu bringen?

Meine gewidmet initializer sieht wie folgt aus:

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        NSLog(@"Hello !!!!!!!!!!!!!");
    }
    return self;
}

Ich sehe nie Hallo in der Konsole, wenn ich versuche, dass aus der Nib zu laden. Natürlich, wenn ich Alloc und initialisieren, dass von mir, es funktioniert. Aber ich mag nicht programmatisch um meine Scroll-Ansicht zu positionieren, wenn ich stattdessen, dass verdammt cool Interface Builder verwenden kann.

War es hilfreich?

Lösung

Objekte in einer Spitze oder xib als serialisierte Objekte gespeichert, das bedeutet möglicherweise die awakeFromNib Methode verwenden, weil init Methoden werden nie genannt.

Andere Tipps

Extend initWithCoder , müssen Sie die Super-Methode aufzurufen. Es ist während dieser Super-Anruf, dass setFrame auf Ihrer Klasse aufgerufen werden.

Sie können dann wieder benutzen, um Ihren Standard initWithFrame ruft in initWithCoder und die Interface Builder wird die Rahmengröße steuern.

- (id)initWithCoder:(NSCoder *)aDecoder {
    [super initWithCoder:aDecoder]; // Required. setFrame will be called during this method.
    return [self initWithFrame:[self frame]];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top