1

私のアプリは、通話中のステータス バー (緑色) の有無を検出する必要があります。縦向きでは、通話中はステータス バーの高さが 40px になるため、通話状態が変化すると、アプリ デリゲートのメソッドwillChangeStatusBarFrameとメソッドがトリガーされます。didChangeStatusBarFrame

問題は、これが縦向きでしか機能しないことです。横向きでは、ステータス バーの高さは呼び出し状態に関係なく 20px であるため、呼び出し状態が切り替わるとき、ステータス バー フレームの変更メソッドはまったく呼び出されません。

これはシミュレーターでは機能しないため、ステータスバーの状態を検出するためのプロキシとして、実際に進行中の呼び出しを検出するためにテレフォニー API に入りたくありません (ただし、これを行う必要があると思います)。 .

ステータス バー フレームの変更方法に依存せずに、このステータス バーの状態を検出する方法はありますか?

4

2 に答える 2

0

コア テレフォニー フレームワークを使用して、通話が進行中かどうかを検出することをお勧めします。ステータス バー フレームの変更のチェックは非常に信頼性が低いように思われるためです (つまり、iOS の新しいバージョンでフレームが変更された場合はどうなるでしょうか?パーソナル ホットスポットはどうなるでしょうか?すでに通話中にアプリを起動しますか?) 既に発見したように。

一方、レイアウトでは、このフレーム変更通知について心配する必要はありません。viewDidLayoutSubviewsビュー コントローラで が呼び出されたときにサブビューの位置を変更できるはずですself.view

それが役立つことを願っています。

于 2014-05-29T15:52:07.567 に答える