2016-10-05 15 views
0

UITableViewControllerに背景を持たないため、StatusBarが表示される問題が発生しています。だから、私はそれをプログラマチックにやりたいと思っています。私はFacebookとYoutubeのようなアプリでこれを見ました。誰もそれで私を助けることができますか?ステータスバーのすぐ後ろにビューを追加 - スウィフト

+0

ご質問を明確にしてください。何を聞きたいですか? – Janmenjaya

+0

ステータスバーの後ろにビューをプログラムで追加する方法はありますか? – FeReTu

+0

ステータスバーとナビゲーションバーに異なる色を設定することを意味しますか?例:ナビゲーションバーの色はグレーで、ステータスバーの色は赤です。または、Facebookのような同じ色でナビゲーションバーとステータスバーを表示したいですか? – Janmenjaya

答えて

1

UINavigationBarをステータスバーの後ろに引き伸ばすには、ナビゲーションバーのデリゲートに関数の位置(for :)を実装します。

Swift3例

class MyViewController: UIViewController { 

    @IBOutlet weak var navigationBar: UINavigationBar! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     navigationBar.delegate = self 
    } 
} 

extension MyViewController: UINavigationBarDelegate { 
    func position(for bar: UIBarPositioning) -> UIBarPosition { 
     return .topAttached 
    } 
} 
1

ステータスバーの背後にビューを追加するために、あなたはスウィフト3

のために書かれたコードの下に使用することができますあなたはそれのための拡張機能を作成する必要がありますし、あなたそれが必要な任意のビューコントローラでこれを使用できます。

let SCREEN_WIDTH = UIScreen.main.bounds.size.width 

extension UIViewController { 
    func addStatusBarBackgroundView(viewController: UIViewController) -> Void { 
     let rect = CGRect(origin: CGPoint(x: 0, y: 0), size:CGSize(width: SCREEN_WIDTH, height:20)) 
     let view : UIView = UIView.init(frame: rect) 
     view.backgroundColor = UIColor.init(red: 255/255, green: 255/255, blue: 255/255, alpha: 1) //Replace value with your required background color 
     viewController.view?.addSubview(view) 
    } 
} 

と単にあなたのビューコントローラに1行を書くことで、これを呼び出す:

override func viewDidLoad() { 
    super.viewDidLoad() 
    addStatusBarBackgroundView(viewController: self) 
    //Your extra code 
} 

ハッピーコーディング..!

+0

これは私が探しているものですが、問題はスクロールするときに背景がステータスバーの後ろに置かれないということです。私はそれをする必要があります:-) – FeReTu

+0

@FeReTu問題を正確に理解するためのコードを投稿してください。また、スクロールビューとしてサブクラスを持つView Controllerクラスを割り当てましたか? –

関連する問題