1

iOS 5 では、UI_APPEARANCE_SELECTOR でマークされたプロパティは、外観を使用してスタイルを設定できることを知りました。例 [[UINavigationBar の外観] setTintColor:....]。ただし、すべての要素をスタイルすることはできないようです。たとえば、UIButton には UI_APPEARANCE_SELECTOR とマークされたプロパティがないため、上記の手法を使用してスタイルを設定することはできません。

私の質問は次のとおりです。外観を使用できない場合、要素をグローバル (アプリケーション内のすべての外観) に最適にスタイルするにはどうすればよいですか?

現在、コード内のさまざまな場所で使用する色、フォント、シャドウ オフセットなどを定義しています。これにより、多くの要素の外観と動作を変更できますが、1 行のコードだけで特定のオブジェクトのすべてのインスタンスのスタイルを設定することはできません。

編集

より良い解決策がないため、次のような単純な方法でいくつかのカテゴリを作成しました。

+ (UIButton *)customLabelWithFrame:(CGRect)frame andText:(NSString *)text;

また、説明したカテゴリと組み合わせて、伸縮可能な画像が便利で便利であることもわかりました。

上記を使用して、グローバルな方法でスタイルを設定できますが、結果に満足できず、より良い解決策を見つけたいと思っています

4

2 に答える 2

0

あなたがあなた自身に言ったように、標準的なサブクラス化またはファクトリークラスはどうですか!?ボタンには、自分でファクトリクラスを使用しています。

于 2012-04-10T19:33:58.647 に答える
0

本当に素晴らしい解決策は、Androidのインターフェース設計方法かもしれないと思います。Androidは、XMLファイルに依存してユーザーインターフェイスを定義します。実際のところ、私は自分が取り組んでいるプロジェクトにほぼ同じ機能を提供することを目的としたライブラリに取り組んでいます。それはまだ進行中の作業/実験であり、そのため本当に厄介なコードです(警告されています!)が、それはあなたにいくつかのアイデアを与えるかもしれません。

サンプルプロジェクトはここからダウンロードできます:http://dl.dropbox.com/u/6487838/WSLayoutManager.zip

コントロールを追加して、XMLファイルを少し試してみてください。カスタムコントロールクラスを作成し、XMLファイルなどからインスタンス化します...楽しいものです:)

于 2012-04-10T19:26:42.973 に答える