問題タブ [uiscreen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 画面外の情報はどの程度安全ですか?
私の iOS アプリにはロック画面があり、有効にすると全体がカバーされUIScreen
ます。ただし、UIScreen
境界の外には、ロック画面でカバーされていない機密情報を含むペインがあります。(これらのペインは、画面のロックが解除されているときにスワイプして出し入れできます。)
範囲外の情報を持つことはどの程度安全UIScreen
ですか? 攻撃者は、ある種の外部ディスプレイ、デバッガー、またはその他のメカニズムを使用して、UIScreen
画面の外側にあるものを「明らかにする」ことができますか?
【ロック画面はWKWebView
デフォルトで「虫めがね」機能がついた画面です。の端でトリガーされるとUIScreen
、虫眼鏡がUIScreen
端の後ろにあるものの数ピクセルを表示することを発見しました。それ以来、この回答で虫眼鏡を無効にしました。]
objective-c - [UIScreen mainScreen].bounds が正しくない値を返す
Xcode 6 でランドスケープ アプリを作成しています。iOS 8.3 シミュレーターで実行すると[UIScreen mainScreen].bounds
です667x375
が、iPhone 6 iOS 8 で実行すると[UIScreen mainScreen].bounds
です375x667
。多くの要素が画面の境界に合わせてサイズ設定されているため、これが私のアプリに問題を引き起こしています。[UIScreen mainScreen].bounds
iOS 8 で変更されたことは知っていますが、それは問題ではありません。667x375
デバイスとシミュレーターの両方にある必要があります。コードを提供しますが、問題がどこにあるのかわかりません。
ios - iPhone のみの方向ロック
UI
設定を使用してiOS
アプリ用に設計しましたwAny hRegular
。
orientation
で正常に動作するようになりましたiPad
。しかし、アプリがで実行されている場合iPhone
、orientation
空白の白い画面が表示されます。
ロックorientation
インiPhones
のみでオリエンテーションが利用できる方法はありますiPad
か?
ios - iOS シミュレーターは、同じ iPhone 5s の iOS 7.1 と iOS 8.2 で画面の高さが異なります
iOS シミュレーターが iOS 7.1 および iOS 8.2 環境をテストするには、奇妙な問題があります。iPhone 5s の画面サイズを取得しようとすると、結果が異なります。これはシミュレーターのバグですか?それともiOS 7とiOS 8の違いですか?
アドバイスありがとうございます。
私のコード:
iPhone 5s (8.2) シミュレーターは結果を出力します。
画面境界: (0.0,0.0,320.0,568.0)
iPhone 5s (7.1) シミュレーターは結果を出力します。
画面境界: (0.0,0.0,320.0,480.0)
また、シミュレータ iOS 7.1 の画面を占める上下の黒い帯があります。
ios - 2 つの UIWindows 間でデータを共有する
私の目的は、TV の 16x9 アスペクト比にわずかに変更されていることを除いて、iPad と同じコンテンツ (鏡のようなもの) を表示する iOS アプリ用の AirPlay オプションを用意することです。
2 番目のウィンドウが表示され、そのルート ビュー コントローラーを設定できるようになるまで、すべての初期設定が完了しました。
私の現在の戦略は、iPad 用と TV 用の 2 つの別個のビュー コントローラーを作成し、それらが通信するためのチャネルを作成することです。
これは、この問題を解決する最も効率的な方法ですか? UIView
おそらく、同じView Controllerを異なるsで使用することを含む、より良い方法はありますか?
ios - iOS ディスプレイ解像度の取得
480x960 ピクセル解像度のデバイス用に設計されたアプリケーションが、480x1136 デバイスで実行されます。480x1136 デバイスで実行しているときに、実際の解像度を検出できる必要があります。残念ながら、デバイスの解像度 (「480x1136」) を取得する代わりに、アプリケーションの解像度 ( == '480x960'
) を取得するため、期待される代わりに[[UIScreen mainScreen] bounds].size * [[UIScreen mainScreen] scale]
返されます。'480x960'
'480x1136'
実際のデバイスの物理解像度を解決するにはどうすればよいですか?
ios - iPhone 強制的に外部画面の解像度を調整
問題のアプリケーションでは、ユーザーが選択したディスプレイで使用可能な画面モードを 1 つ選択できる必要があります。たとえば、外部ディスプレイは 1920x1080 をネイティブにサポートしている場合がありますが、その EDID には 1920x1200、1280x720、および 1024x768 のサポートされている解像度も表示されます。
デフォルトでは、外部ディスプレイを iOS デバイスに接続すると、外部ディスプレイでサポートされている最高の解像度が常に優先されるように見えます。ユーザーがリストから選択してUIScreenMode.availableModes
解像度を変更できるようにしました。モードを選択して に適用するとexternalScreen.currentMode
、新しい解像度が考慮されていることが表示されます。
テストでは、すべて赤の外部ディスプレイにビューを割り当てました。たとえば、解像度を 1920x1080 から 1024x768 に変更すると、赤いボックスが 4:3 の縦横比でモニターに表示されます。同じことを 1280x720 にすると、赤いボックスが 16:9 に保たれ、1080 とほとんど同じように画面いっぱいになります。
ただし、赤いボックスには AutoLayout 制約のある 2 つのラベルが含まれています。解像度が変更されても、ラベルの x/y 座標は赤いボックスに対して同じままです。赤いボックスの中央に配置する必要がありますが、解像度を変更しても再レイアウトされないようです。さらに、解像度を下げると、ラベルの物理的なサイズが大きくなります。これは、解像度の変更によってラベルが何らかの影響を受けていることを示しています。
では、赤いボックスのサブビュー (externalDisplay に割り当てられた UIView) を変更した後、どのように更新できUIScreenMode.currentMode
ますか?
以下は、何が起こっているかの簡略化されたバージョンです。
これは、screenModeDidChange 通知を受信したときに呼び出されます。
アップデート
通知に次の応答を追加するとscreenModeDidChange
、問題が解決する場合があります。結果に一貫性がなく、これが iOS 9 ベータ版の問題かどうかはわかりません。
更新 #2
ここに挙げた方法で外部画面の解像度を変更できるように見えますが、実際の出力解像度は変更されません。たとえば、iOS デバイスが 1920x1080 の優先 EDID を示すモニターに接続されている場合、デバイスはデフォルトでこの解像度になります。前述の方法を使用して解像度を変更すると、表示される画像の解像度が変更されますが、出力解像度は 1920x1080 のままです。本質的に、実際の出力解像度は変更されずに、表示されるコンテンツの解像度が低下するだけです。