標準的なuibuttonにバッジを追加するにはどうすればよいですか? [閉まっている
-
12-10-2019 - |
質問
標準的なバッジを標準に追加することは可能ですか UIButton
?
半否定的にサポートされていない場合、これを達成するための最も簡単な方法は何ですか?
画像の例:
解決
これがSascha Paulusと呼ばれるとても素敵なクラスです カスタムバッジ, 、コアグラフィックを使用してカスタムバッジを構築およびレンダリングします。それらはただのuiviewサブクラスなので、他のuiviewサブクラスと同じようにフレームを使用してレイアウトします。
私はこのライブラリを何度も使用してきましたが、常に結果に満足しています。柔軟で使いやすい。完全にお勧めします。
他のヒント
ここでいくつかのオプションを確認できます。 ココアコントロールバッジ
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と同様の方法で行きます。あなたが好きなようにボタンを使用してから、そのバッジでカスタムビューをサブビューとして追加します - 私はそれをやったとうまくいきます。
ビューに関しては、好きなように描くことができます。あなたはそれを手動で描くか、コアアニメーションを使用して、それが主な部分を作ることができます、つまり theBadge.layer.cornerRadius = ...;
丸い形を与えるには、テキスト/番号を描画します drawRect:
または、ラベルなどとして追加します。