2012-04-03 10 views
0

Ist das möglich? Es scheint schäbig, dass es nicht so ist.Erstellen eines benutzerdefinierten Toggle mit UIButton im Interface Builder

Ich versuche, eine Umschalttaste (kein UISwitch) in IB zu erstellen. Wenn Sie zum Beispiel eine Stummschalttaste drücken, wird beim Stummschalten angezeigt, dass der Ton deaktiviert ist. Wenn Sie diese Taste drücken, verschwindet diese Anzeige (aber immer noch dieselbe zugrunde liegende Grafik) und wechselt bei jedem Drücken zwischen diesen Zuständen.

Diese Funktionalität kann mit der ausgewählten Eigenschaft erreicht werden, jedoch können Sie die Selected AND Highlighted-Eigenschaft in IB nicht wie im Code ändern, so dass das hervorgehobene Bild immer dann angezeigt wird, wenn die Taste gedrückt wird Gleiches, was schrecklich und unruhig aussieht.

Gibt es eine Möglichkeit, dies nur mit IB zu beheben, oder muss ich eine benutzerdefinierte Klasse erstellen, um zu vermeiden, dass alle diese Schaltflächen manuell geladen werden?

Antwort

0

Haben Sie darüber nachgedacht, UIButton zu untergliedern, um die Dinge hinzuzufügen, die Sie brauchen?

+0

Es ist möglich, es mit einem regulären UIButton im Code zu tun; Ja, ich habe darüber nachgedacht, es zu unterklassifizieren und habe gerade etwas Code hinzugefügt, um automatisch zu erkennen und den Selected/Highlighted-Zustand bei der Initialisierung zu setzen, aber es wäre schöner, wenn ich das nicht tun müsste. Wenn ich aber diesen Weg gehen muss, bin ich mir nicht sicher, was ich übersteuern soll, wäre es nur -initWithFrame :? – user1137704

+0

Zum Beispiel können Sie 'setImage: @" irgendein Bild "forState: (UIControlStateHighlighted | UIControlStateSelected)', die das Problem lösen würde, aber es scheint nicht ein Äquivalent in IB zu sein. Das einzige Problem mit Unterklassen ist, zu erkennen, wie der Wert sein soll. – user1137704

Verwandte Themen