39

これと同じ質問ですが、その質問は (当時の NDA のため) 回避され、現在はアクティブではありません。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Illegal property type, c for appearance setter, _installAppearanceSwizzlesForSetter:'

viewDidLoadこれを最初のView Controllerで設定しています。setTranslucentオートコンプリートで出てきて、クラッシュしてスウィズルなどについて話すまで文句を言いません。

これに関する情報は素晴らしいでしょう。アプリ全体で一貫したステータスバーの外観を得るのにまだ非常に苦労しています。

4

5 に答える 5

8

ただし、存在しない画像を指定することでだますことができます。これにより、ツールバーが不透明になります

[[UIToolbar appearance] setBackgroundColor:[UIColor colorWithRed:219.0/255.0 green:67.0/255.0 blue:67.0/255.0 alpha:1.0]];

[[UIToolbar appearance] setBackgroundImage:[[UIImage alloc] init] forToolbarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
于 2013-11-05T17:18:37.530 に答える
2

違法な方法を使用したためにクラッシュします。でUIAppearance、それは言います

To participate in the appearance proxy API, tag your appearance property selectors in your header with UI_APPEARANCE_SELECTOR.

を使用する場合[[XXX appearance] method]、メソッド method には属性 UI_APPEARANCE_SELECTOR が必要です。そうしないと、例外がスローされる可能性がありますが、属性はありtranslucentません。

しかし、私を困惑させている[[XXX appearance] method]のは、iOS8では問題ありませんが、iOS7ではクラッシュし、Appleのドキュメントにはそれが記載されていないということです。

于 2015-04-04T05:27:34.493 に答える
2

あなたの質問に対する答えがわかりません。Google からここにたどり着きましたが、ナビゲーション コントローラーを使用している場合は、次の行ですべての透過性を変更できます。

[self.navController.navigationBar setTranslucent:NO];
于 2014-03-14T22:19:12.007 に答える
0

クラスが初期化された後に半透明のプロパティを変更することはできません。

[newsViewNavigationController.navigationBar setTranslucent:NO];

私はこのようなことをしましたが、うまくいきました!

于 2014-04-14T05:19:27.337 に答える