2016-03-04 13 views
5

ここでは奇妙な動作があります。 Swiftでコーディングされた基本的なiOSアプリがあります。 WKWebViewとその他の小さな機能を使用しています。ステータスバーは、表示されているコールのステータスバーを有効にしてアプリを起動したときにのみ表示されます。

現時点で大きな問題の1つは、「In-call Status Bar」です。私は、コールステータスバーを切り替えた場合、アプリケーションが開いている間、それは完全に正常に見える:

enter image description here


私は、コールのステータスバーを切り替えた場合、私は、アプリケーションを開き、実行する前に、けれどもそれは、レイアウトはすべて奇妙行く:「オフ」にステータスバーをトグルするとともに


enter image description hereが、それは、その後も、weirde行きます(一番上の空白の20ピクセル)R:

enter image description here


は問題が故に(アプリケーションが開いていた間、私はこれを固定ものの、中・コールステータスバーは、切り替えたときにも起こっていましたこの単純なワンライナーで罰金見て最初の画像):

webView.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight] 

にはどうすれば通話が起動している間にアプリケーションが開いている場合でも、私のWebViewのは、このために対応するために得ることができますか?

+0

おそらく自動レイアウトの問題です。制約を確認してください。また、ストーリーボードでは、物事はそのままシミュレーションされますが、実際のシミュレーションテストでは収束しないことに注意してください。 – SamuelD

+0

これを解決できるのはどこですか? – Honey

+0

@ハニー - 残念ながら。それを残して、代わりにアプリのより重要な機能に取り組んだ。 – Fizzix

答えて

0

私はこの問題に遭遇しましたが、アプリケーションが開いたときにステータスバーのサイズを確認し、40ポイントでUIApplicationDidChangeStatusBarFrameの通知を待ち受けている場合は、ビューフレームを移動して解決しました.zero。スイフト4の例では

var sbshown: Bool = false 

override func viewDidLoad() { 
    super.viewDidLoad() 

    //check height of status bar when app opens, and set a boolean if open 
    let sbheight = UIApplication.shared.statusBarFrame.height 

    NSLog("status bar height %f", sbheight) 

    if (sbheight == 40) { 
     sbshown = true 
    } 

    //set up to receive notifications when the status bar changes 
    let nc = NotificationCenter.default 

    nc.addObserver(forName: NSNotification.Name.UIApplicationDidChangeStatusBarFrame, object: nil, queue: nil, using: statusbarChange) 

} 

そして、ステータスバーが消えたときにビューのサイズを変更し、再配置する方法を実装する:場合

func statusbarChange(notif: Notification) -> Void { 

    if (sbshown) { 
     sbshown = false 

     self.view.frame.origin = .zero 
     self.view.frame.size.height = UIScreen.main.bounds.height 
    }  

} 

したがって、再配置のみ起こるべきですアプリが既に開いているときにバーが表示され、非表示になっている場合ではなく、アプリが開いたときにバーが表示されていました。

+0

このアプリを*起動*すると通知はありません。通知を受け取るには、アプリケーションを起動した後にステータスバーを変更する必要があります – Honey

+0

アプリの起動後にステータスバーが非表示になっている場合にのみ通知を探しています。この問題は、アプリケーションの起動前にステータスバーが表示され、アプリケーションの実行中に非表示になっている場合にのみ発生します。 – zazzy78

関連する問題