2

テーブル ビューの背景色を普遍的に変更しようとしています。UINavigationController と TabBarController アプリの組み合わせです。AppDelegate applicationDidFinishLaunchingWithOptions に以下を入れてみました

[[[UITableView appearance] backgroundView] setBackgroundColor:[UIColor redColor]];
[[UITableView appearance] setBackgroundColor:[UIColor redColor]];
[[UITableView appearanceWhenContainedIn:[UINavigationController class], nil] setBackgroundColor:[UIColor greenColor]];
[[UITableView appearanceWhenContainedIn:[UITabBarController class], nil] setBackgroundColor:[UIColor greenColor]];

変化なし。

AppDelegate で一般的な UIView を変更しようとすると、次のように動作します。

[[UIView appearance] setBackgroundColor:[UIColor redColor]];

viewDidLoad で各テーブルビューを個別に攻撃すると、次のように動作します。

self.tableView.backgroundColor = [UIColor redColor];

たった 1 行のコードであることは理解していますが、多くのビューがあるため、追跡する必要があるのは 1 つだけです。iOS 5 UIAppearance はこのために作られたようです。なぜ機能しないのかはっきりしません。ありがとう。

4

3 に答える 3

0
  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[[UITableView の外観] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"xxxx.png"]]];

はいを返します。}

于 2013-11-25T03:29:32.040 に答える
0

[UITableView backgroundColor] セレクターは UI_APPEARANCE_SELECTOR でマークされていません。アップルのドキュメントによると

「外観のカスタマイズをサポートするには、クラスが UIAppearanceContainer プロトコルに準拠し、関連するアクセサー メソッドが UI_APPEARANCE_SELECTOR でマークされている必要があります。」

UITableView backgroundColor は外観プロキシで動作することは想定されていません

于 2014-10-02T15:23:52.530 に答える