Kann ich * das UILabel auf einem UIButton mit FXLabel ersetzen?

8

Ich versuche also, UILabel in UIButton stattdessen in eine Instanz von FXLabel zu ändern. Weitere Informationen finden Sie unter FXLabel ( Ссылка ). Ich weiß, indem ich Klassenerweiterungen ( Unterklasse UIButton, um eine Eigenschaft hinzuzufügen ), ich könnte immer eine andere Eigenschaft hinzufügen, in meinem Fall eine FXLabel , indem ich einfach nur eine Unteransicht hinzufüge. Ich mag jedoch die Bequemlichkeit und die Eigenschaften der Eigenschaft titleLabel bereits vorhanden.

Gibt es eine Methode, um das UILabel für ein FXLabel nach Unterklasse oder Kategorie zu "wechseln"?

Ich weiß, dass ich das tun könnte, aber es ist so ein Hack und ist nicht zukunftssicher. Und ich weiß nicht, wie man dann den Klassentyp ändert ( Hole UILabel aus UIButton >).

%Vor%

Gedanken ?? Danke.

    
Dylan Gattey 21.12.2011, 06:58
quelle

2 Antworten

5

Hier ist eine andere Möglichkeit, wie Sie zumindest auf das Etikett zugreifen können. Erstellen Sie eine Unterklasse von UIButton und überschreiben Sie in dieser Unterklasse layoutSubviews . Von dort können Sie direkt auf das Etikett zugreifen:

%Vor%

Jetzt sind wir immer noch mit dem Problem beschäftigt, dieses Label zu einer Unterklasse zu machen. Ich denke, Sie könnten versuchen, die Klasse UILabel dynamisch mit Ihrer Unterklasse FXLabel zu tauschen (wie detailliert hier ), aber um ehrlich zu sein, ist das ziemlich riskant.

Ich würde sagen, du bist besser dran, wenn du deine eigene UIControl erstellst, die du nach Herzenslust anpassen kannst. Kein Risiko, nur reine Güte. Es sollte nicht zu schwer sein, ein einfaches UIButton zu imitieren. Viel Glück!

    
sudo rm -rf 21.12.2011, 07:30
quelle
1

Tut mir leid, es zu sagen, aber ich glaube nicht, dass Sie das auf eine zuverlässige Weise tun können. Selbst wenn Sie UIButton subclassieren und die Methoden titleLabel überschreiben, müssen Sie auch die Statuseinstellungen bearbeiten. Und Sie wissen nie, wann der interne Code direkt auf einen privaten Ivar für das Label verweist.

Ich habe eine Unterklasse von UIButton für meine Apps erstellt, um etwas Ähnliches zu tun (benutzerdefinierte Schaltflächenlayouts und Unteransichten). Tut mir leid, ich kann es jetzt nicht teilen, es gehört einem Kunden. Es ist nicht allzu schwierig, einen eigenen Statusbehandlungscode für eigene Subviews zu erstellen.

    
XJones 21.12.2011 07:27
quelle