標準に標準的なバッジを追加することは可能UIButton
ですか?
半自然的にサポートされていない場合、これを達成するための最も簡単な方法は何でしょうか?
画像の例:
標準に標準的なバッジを追加することは可能UIButton
ですか?
半自然的にサポートされていない場合、これを達成するための最も簡単な方法は何でしょうか?
画像の例:
これは、 CustomBadgeと呼ばれるSascha Paulusによる非常に優れたクラスで、CoreGraphicsを使用してカスタムバッジを作成およびレンダリングします。これらは単なるUIViewサブクラスであるため、他のUIViewサブクラスと同じようにフレームを使用してレイアウトします。
私はこのライブラリを何度も使用しており、常に結果に満足しています。柔軟で使いやすい。完全にお勧めします。
ここでいくつかのオプションを確認できます:CocoaControlsバッジ
Appleが使用するクラスは_UIBadgeView
(https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UIBadgeView.h)ですが、もちろん、このクラスはプライベートです(アンダースコアに注意してください)。 )および文書化されていません。
これは、Appleと同じルックアンドフィールでこのビューを実装すると同時に、カスタマイズできる別のクラスです:https ://github.com/JaviSoto/JSBadgeView 。これの素晴らしいところは、バッジを別のビューに対して自動的にその隅の1つに配置できることです。
Nimbusには、非常に使いやすく、十分に文書化されたバッジビューがあります。
これが箱から出してどのように行われるのかわかりません。AppleがそれをSDKに組み込んだのではないかと正直に疑っています。
とにかく、ボタンが付いたカスタムビューを作成し、バッジの背景をUIImageViewとして追加し、バッジの数を保持するためにその上にラベルを配置することができます。
UIButton
これは簡単な解決策です。のカスタムサブクラスを作成し、バッジをサブビューとして追加する方がよい場合があります
@BjörnKaiserと同じように行きます。ボタンを好きなように使用し、そのバッジをサブビューとして使用してカスタムビューを追加します。これで、うまく機能します。
ビューはお好きなように描くことができます。手動で描画するか、CoreAnimationを使用して主要部分を作成することができます。つまりtheBadge.layer.cornerRadius = ...;
、丸い形にする、テキスト/数字を描画する、drawRect:
またはラベルとして追加するなどです。