カスタマイズされた UIButton を作成しようとしています。(変化する)画像、いくつかの情報テキスト、そしてもちろんタイトルなどのより標準的なものがあります。インターフェイス ビルダーとストーリーボードを使用して、アプリのほとんどのデザイン作業を行っています。
このようなカスタム UIButton を作成するためのベスト プラクティスは何ですか?
ボタンはより標準的な要素から構築できるため、サブクラス化せずに図面を引き継ぐことにしました。
代わりに、UIButton をサブクラス化し、UIImageView、UILabel などのサブビューを作成して追加しようとしました。境界が awakeFromNib に設定されておらず、initWithFrame が呼び出されないため、すべてを配置するタイミングがわかりませんでした。最終的に、UIViewController が viewDidAppear で呼び出す別のメソッドを追加しました。
その後、おそらくサブクラス化せずに UIViewController の viewDidLoad または viewDidAppear でボタンを構築できることに気付きましたが、ボタンの境界がまだ利用できないことに再び気付きました。
したがって、どちらが最適ですか:
- すべてをサブクラス化して描画する
- 他の UIView の合成によるサブクラス化と構築
- 外側のビューでボタンを作成する
- 他の方法は…?
また、フレームワーク内のすべてが、親が自動レイアウトを使用しているときにサブビューを手動でレイアウトすることに対して共謀しているように見えるので、より良い方法があるに違いないと思います。