2016-03-23 15 views
1

UINavigationBar.barTintColorUIColor.clearColor()からwhiteColor()に変更しようとしていますが、ユーザーがスクロールするときに変更されますが、ユーザーがビューの先頭にスクロールしたときにクリアに戻ります。UINavigationBar barTintColorを変更する方法

これは私が試したことです。

のviewDidLoad

self.navigationController?.navigationBar.shadowImage = UIImage() 
self.navigationController?.navigationBar.backgroundColor = UIColor.clearColor() 
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor() 
self.navigationController?.navigationBar.barTintColor = UIColor.clearColor() 

scrollViewDidScroll

override func scrollViewDidScroll(scrollView: UIScrollView) { 
    self.navigationController?.navigationBar.shadowImage = UIImage() 
    self.navigationController?.navigationBar.backgroundColor = UIColor.whiteColor() 
    self.navigationController?.navigationBar.tintColor = UIColor.redColor() 
    self.navigationController?.navigationBar.barTintColor = UIColor.whiteColor() 
} 

しかし、これは動作しません、誰もが私が後だ効果を達成することができる方法を知っていますか?

+1

がなぜこの質問は閉鎖されましたか? 「あなたが求めているものが不明」という正当性はここでは妥当ではないようです。 OPが何を求めているかははっきりしています。 @BradLarson – Annjawn

答えて

3

最も簡単な解決策:私は本当にわからない

func scrollViewDidScroll(scrollView: UIScrollView) { 
     if (scrollView.contentOffset.y > 0) { 
      self.navigationController?.navigationBar.backgroundColor = UIColor.whiteColor() 
      self.navigationController?.navigationBar.tintColor = UIColor.redColor() 
      self.navigationController?.navigationBar.barTintColor = UIColor.whiteColor() 
     } else { 
      self.navigationController?.navigationBar.backgroundColor = UIColor.clearColor() 
      self.navigationController?.navigationBar.tintColor = UIColor.whiteColor() 
      self.navigationController?.navigationBar.barTintColor = UIColor.clearColor() 
     } 
    } 
関連する問題