developer's diary

最近はc#のエントリが多いです

IOS App development of Xamarin Studio 〜 ステータスバーを取り除く

今日の朝チュートリアルは、「書籍にあるtipsを試す」です。

書籍は「iPhoneプログラミングUIKit詳解リファレンス 」です。 iPhoneアプリの開発するなら読んどく方が良い的な本。 Objective-CのソースはARCでないので、そのまま流用は辛いと思うのですが、UIKitに関する考え方を学ぶには一番分かりやすい日本語書籍だと思います。

今回はP.120の内容「Unit 4.1 フルスクリーン」の内容を実践。

まずはUIViewControllerを作って、空のUIViewを指定して背景を設定

using System;
using MonoTouch.UIKit;

namespace fullScreenApp
{
    public class FullScreenController : UIViewController
    {
        public FullScreenController ()
        {
            UIView view = new UIView (this.View.Frame);
            view.BackgroundColor = UIColor.White;
            this.View.AddSubview(view);
        }
    }
}

f:id:mitsugi-bb:20130301073056p:plain

普通にUIViewControllerを動かすだけだとステータスバーが表示されます。

そこで、UIApplication.SharedApplication.SetStatusBarHiddenメソッドを呼んで、ステータスバーを外すだけ。

第1引数が表示するかしないかをBooleanで設定 第2引数はUIStatusBarAnimation の Enumを設定

UIStatusBarAnimation 意味
UIStatusBarAnimation.None アニメーションなし
UIStatusBarAnimation.Fad フィードアウト・フィードイン
UIStatusBarAnimation.Slide スライドイン・スライドアウト

fullスクリーンにするとこんな感じです。

using System;
using MonoTouch.UIKit;

namespace fullScreenApp
{
    public class FullScreenController : UIViewController
    {
        public FullScreenController ()
        {
            UIApplication.SharedApplication.SetStatusBarHidden (true, UIStatusBarAnimation.None);
            UIView view = new UIView (this.View.Frame);
            view.BackgroundColor = UIColor.White;
            this.View.AddSubview(view);
        }
    }
}

f:id:mitsugi-bb:20130301074022p:plain

ちなみに、new UIView (this.View.Frame);した後に、SetStatusBarHiddenすると、UIViewのサイズがステータスバーを考慮した状態のままなので注意ですね。 (そもそもこのソースのままだと横向きに対応していませんが。。。。)

今度の課題はリサイズの対応っぽいですね。同じく「iPhoneプログラミング UIKit詳細リファレンス」を参考に進めてみたいと思います。

今日はここまで。

ソースはgithubに。