使用Xamarin开发iOS7应用时隐藏StatusBar方法

在iOS7之前如果需要隐藏StatusBar,比较简单,直接在AppDelegate.cs中使用如下代码就可以进行隐藏:

UIApplication.SharedApplication.StatusBarHidden = true;

但这段代码在iOS7中却无法实现StatusBar隐藏,而是将StatusBar透明显示。经过在Xamarin网站查询向导,具体方法是为UIViewController增加一个重写方法,

public override bool PrefersStatusBarHidden ()
{
    return true;
}

这样就可以进行隐藏了,完成后效果如下图所示:

在实际代码编写的时候为了方便起见,可以建立一个ViewController的类,继承UIViewController类,增加StatusBarHidder的方法,以后再新增UIViewController的时候都继承ViewController即可。具体代码如下:

using System;
using System.Drawing;

using MonoTouch.CoreFoundation;
using MonoTouch.UIKit;
using MonoTouch.Foundation;

namespace Com.imStudio.iOSLibrarys
{
    [Register("ViewController")]
    public class ViewController : UIViewController
    {
        public Boolean StatusBarHidder { get; set; }

        public ViewController()
        {
        }

        public override void DidReceiveMemoryWarning()
        {
            // Releases the view if it doesn't have a superview.
            base.DidReceiveMemoryWarning();

            // Release any cached data, images, etc that aren't in use.
        }

        public override bool PrefersStatusBarHidden()
        {
            return this.StatusBarHidder;
        }

        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Perform any additional setup after loading the view
        }
    }
}

以上是我的解决办法,欢迎和大家多多沟通学习,如有任何改进意见和建议,我的QQ是1243672,欢迎联系哦。

posted on 2013-10-25 19:35 宋海鹏 阅读(...) 评论(...) 编辑 收藏

导航