Ist es möglich, einem Standard ein standardmäßig aussehendes Abzeichen hinzuzufügen UIButton
?
Was wäre der einfachste Weg, um dies zu erreichen, wenn es nicht semi-nativ unterstützt wird?
Beispielbild:
iphone
cocoa-touch
ios
badge
ohadpr
quelle
quelle
Antworten:
Hier ist eine SEHR SCHÖNE Klasse von Sascha Paulus namens CustomBadge , die mithilfe von Core Graphics benutzerdefinierte Abzeichen erstellt und rendert. Sie sind nur UIView-Unterklassen, daher legen Sie sie wie jede andere UIView-Unterklasse mit ihrem Rahmen an.
Ich habe diese Bibliothek viele Male benutzt und war immer mit den Ergebnissen zufrieden. Flexibel, einfach zu bedienen. Kann es nur empfehlen.
quelle
Hier können Sie nach verschiedenen Optionen suchen : CocoaControls-Abzeichen
quelle
Die von Apple verwendete Klasse ist
_UIBadgeView
( https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UIBadgeView.h ), aber diese Klasse ist natürlich privat (beachten Sie den Unterstrich ) und nicht dokumentiert.Hier ist eine weitere Klasse, die diese Ansicht mit dem gleichen Erscheinungsbild wie die von Apple implementiert und es Ihnen gleichzeitig ermöglicht, sie anzupassen: https://github.com/JaviSoto/JSBadgeView . Das Tolle an diesem ist, dass Sie das Abzeichen automatisch relativ zu einer anderen Ansicht in einer seiner Ecken positionieren können.
quelle
Wir haben eine Abzeichenansicht in Nimbus, die super einfach zu bedienen und gut dokumentiert ist:
NimbusBadge
quelle
Ich weiß nicht, wie das sofort gemacht wird, und ich bezweifle ehrlich, dass Apple das in das SDK eingebaut hat.
Auf jeden Fall können Sie eine benutzerdefinierte Ansicht mit einer Schaltfläche erstellen, den Hintergrund des Ausweises als UIImageView hinzufügen und eine Beschriftung darauf platzieren, um die Anzahl der Ausweise zu speichern.
Dies ist eine schnelle Lösung. Es ist möglicherweise besser, eine benutzerdefinierte Unterklasse zu erstellen
UIButton
und Ihre Abzeichen als Unteransicht hinzuzufügenquelle
Ich würde einen ähnlichen Weg wie @ Björn Kaiser gehen: Verwenden Sie die Schaltfläche nach Ihren Wünschen und fügen Sie dann eine benutzerdefinierte Ansicht mit diesem Abzeichen als Unteransicht hinzu - ich habe es geschafft und es funktioniert gut.
Die Ansicht können Sie nach Belieben zeichnen. Sie können es manuell zeichnen oder CoreAnimation verwenden und es den Hauptteil bilden lassen, dh
theBadge.layer.cornerRadius = ...;
ihm eine runde Form geben, den Text / die Zahl einzeichnendrawRect:
oder als Beschriftung hinzufügen usw.quelle