頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


iOS 7の半透明ビューはどうするの

iOS 7の通知センターやコントロールセンターの背景ってすりガラスみたいになってるじゃない?
view.backgoundColor = [UIColor frostedGlass];
とかあってもよさそうだけど、どうもあれを実現するAPIは一般の開発者には公開されていないみたいで、某フォーラムで代替の方法が紹介されてたんだよ。それがこれ。
{
    UINavigationBar *navigationBar = [[[UINavigationBar alloc] initWithFrame:self.view.bounds] autorelease];
    if (type == TYPE2)  navigationBar.barStyle = UIBarStyleBlack;
    navigationBar.translucent = YES;
    self.view = navigationBar;
}
viewController内に置くコードなんだけど、要は画面全体をUINavigationBarオブジェクトをベースにしちゃえってアイデア。



↑モーダルビューの背景がすりガラス(frosted glass)っぽくなるようにしてる。
それっぽくもなるようだけど、、、緊急避難的な感じかな。細かく指定はできないんだよね、、、多分。

あと、このデモ用動画を作ってて初めて気が付いたんだけど、単純にモーダルビューとして新しいビューを表示させたら、アニメ終了直後に背景がすりガラスじゃなくなるんだ。原因はよくわからないんだけどね、、、
それでiOS 7から使えるようになったUIViewControllerAnimatedTransitioningプロトコルあたりを使ってモーダルビューを任意で動かせるようにしたら背景は(デモ動画のように)すりガラスのままなんだよ。うーん、、、?

<< iOS 7で画像を使ったボタンを青くしたい  TopPage  UIDynamicAnimatorで遊んでみる >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/810-3756a536




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad