2017-12-07 18 views
0

この質問はスウィフト4に実装することを求められたら、iOSの11プッシュのViewControllerサブビュー半がTrueで、プログラム

が、それはUINavigationBarの下にあるときのViewControllerのビューのすべてのサブビューを押し下げることができるようにする方法はあります?

ナビゲーションバーがトランスコードされていない場合、サブビューはその下にあります。これは私が欲しいものです。

Desired Result

しかし、ナビゲーションバーがサブビューはその下に横たわっている半透明であるとき。私はそれを望んでいない。ナビゲーションバーが半透明でない場合と同様に、サブビューがプッシュダウンされます。

Undesired Result

私は、プログラムでビューを作成します。

自動レイアウト

を使用して

class ViewController: UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.view.backgroundColor = UIColor.red 
     let navBar = (self.parent as? UINavigationController)?.navigationBar 
     navBar?.isTranslucent = true 
    } 

    func makeChildView() { 
     let myframe = CGRect(x: 0, y: 10, width: self.view.frame.width, height: 
    self.view.frame.height * 0.4) 
     let view = UIView(frame: myframe) 
     view.backgroundColor = UIColor.green 
     self.view.addSubview(view) 
    } 

私は自動レイアウトを使用してこの問題を解決することができています。しかし、私は、可能ならば自動レイアウトなしでこの結果を達成する方法を知りたいだけです。他のアプローチはありますか?

+0

画像を使用する代わりにコードにmarkdownを使用してください。 –

+0

もちろん、書きましょう。ごめんなさい。 – muizmoses

答えて

0

スウィフト3.xの

navBar?.isTranslucent = true 
self.automaticallyAdjustsScrollViewInsets = false 

あなたが行ってもいいです&次の行を追加します。

+0

'self.automaticallyAdjustScrollViewInsets'はiOS 11では廃止されました。すべての質問でこのような答えが見つかりましたが、私にとってはうまくいかなかったため、別の解決策が必要です。 – muizmoses

関連する問題