UIView-Benachrichtigungen

  • UIView-Benachrichtigungen

    Hallo,

    ich finde mal wieder mit Google nicht die richtigen Antworten ... vermutlich suche ich falsch.

    Ich habe eine Klasse von UIView abgeleitet, die immer in Abhngigkeit vom SUperview eine bestimmte Größe annehmen soll, und zwar sobald der View an einen anderen UIView gelinkt (addSubview:-Aufruf im Superview) oder der Superview resized wurde. Das heißt, dass ich irgendwie erreichen möchte, dass in diesen Fällen eine "meiner" Methoden aufgerufen wird, damit ich "meinen" View entsprechend skalieren kann. Das ist deswegen etwas kompliziert, weil ich den View komplett über drawLayer: selbst zeichne(n möchte) und bestimmte Properties ändere.

    Gibt es so etwas wie ein UIView-Protokoll? Oder funktioniert das über die autoresizingmask - a) auch, wenn neu verlinkt wurde und b) mit welcher Methode, die dann in "meiner" Klasse aufgerufen wird?

    Danke!!
  • Ok, das werde ich mal testen.

    Ich versuche gerade mal was anderes, nämlich:

    Quellcode

    1. [self addObserver:self forKeyPath:@"superview" options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:NULL];

    Ist vermutlich strange, auf eine eigene Property einen observer anzumelden, aber warum nicht ...? Naja, bisher funktioniert es auch nicht ;)

    ##EDIT
    drawLayer: Das Problem ist, dass ich nur einmal benachrichtigt werde (am Anfang), weil danach ge-cache-d wird. Ich müsste also schon setNeedsLayout: verwenden; das kann ich aber nur, wenn ich weiß, wann. Damit wäre ich wieder am Anfang meiner Frage ...