各種バーの半透明化
プリインストールされている写真アプリなどは、ステータスバー、ナビゲーションバー、ツールバーが半透明になっている。
拡大図
※表示画像は下記から拝借した。
#530「ローテンブルクの乗用車」のフリー写真素材 (無料壁紙画像) - Futta.NET
コード
これを実現するコードはこんな感じ。UIViewController 内に記述する。
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; // setup *bar translucent [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackTranslucent; self.wantsFullScreenLayout = YES; // ステータスバーの背景も描画対象にする self.navigationController.navigationBar.barStyle = UIBarStyleBlack; self.navigationController.navigationBar.translucent = YES; self.navigationController.toolbar.barStyle = UIBarStyleBlack; self.navigationController.toolbar.translucent = YES; }
元に戻すコード
- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; // restore *bar opacity [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault; self.navigationController.navigationBar.barStyle = UIBarStyleDefault; self.navigationController.navigationBar.translucent = NO; self.navigationController.toolbar.barStyle = UIBarStyleDefault; self.navigationController.toolbar.translucent = NO; }
参考情報
情報元は下記の本。この本は結構役に立つ。
「Unit 4.1 フルスクリーン」(P.120)
各バーがじわじわと透明になっていく(見えなくする)方法についても紹介されている。
やないっち says:
2010年9月27日 13:39
self.navigationController.toolbar.translucent = YES;
これ、UITableViewControllerの中でやると、iOS4.2だと挙動がおかしくなるみたいですね。
ご注意を。
やないっち says:
2010年9月27日 13:39
self.navigationController.toolbar.translucent = YES;
これ、UITableViewControllerの中でやると、iOS4.2だと挙動がおかしくなるみたいですね。
ご注意を。
xcatsan says:
2010年9月28日 9:52
やないっちさん、情報どうも。
そうなんですね。iOS4.2入手したら試してみます。
xcatsan says:
2010年9月28日 9:52
やないっちさん、情報どうも。
そうなんですね。iOS4.2入手したら試してみます。
匿名
2010年10月12日 6:46
すいません、これをどこに打ち込めばいいのでしょうか…(
また、これを打つことで写真アプリ以外も半透明になるということでいいのでしょうか?
匿名
2010年10月12日 6:46
すいません、これをどこに打ち込めばいいのでしょうか…(
また、これを打つことで写真アプリ以外も半透明になるということでいいのでしょうか?
xcatsan says:
2010年10月12日 8:59
こんにちは。
> すいません、これをどこに打ち込めばいいのでしょうか…(
表示している画面で使っている UIViewControllerのサブクラスで
使うと良いと思います。メソッドはブログに書かれている
- (void)viewWillAppear:(BOOL)animated
などです。
> また、これを打つことで写真アプリ以外も半透明になるということでいいのでしょうか?
今回の効果はコードを入れたアプリのみの効果になります。
このコードを実行しても他のアプリ(写真アプリ、他)が
半透明になるわけではありません。
では。
xcatsan says:
2010年10月12日 8:59
こんにちは。
> すいません、これをどこに打ち込めばいいのでしょうか…(
表示している画面で使っている UIViewControllerのサブクラスで
使うと良いと思います。メソッドはブログに書かれている
- (void)viewWillAppear:(BOOL)animated
などです。
> また、これを打つことで写真アプリ以外も半透明になるということでいいのでしょうか?
今回の効果はコードを入れたアプリのみの効果になります。
このコードを実行しても他のアプリ(写真アプリ、他)が
半透明になるわけではありません。
では。