Ticket #38903

iOS版 iPadを縦向きにするとメイン画面がスクリーンからはみ出す

Open Date: 2019-01-28 00:24 Last Update: 2019-01-31 23:41

Reporter:
Owner:
Type:
Status:
Closed
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

メイン画面はランドスケープ(横方向)の表示にしか対応していないため、 iPadを縦向きにしたままメイン画面を表示すると、本来は90度回転してスクリーン内に表示されるはずである。 しかし、メイン画面が90度回転されずに横方向のまま表示され、メイン画面の右側がスクリーンの外にはみ出してしまう。 本現象は iPad mini4 / iOS 12 で発生している。第3世代iPadとiPhoneでは発生していない。

Ticket History (3/4 Histories)

2019-01-28 00:24 Updated by: yknk
  • New Ticket "iOS版 iPadを縦向きにするとメイン画面がスクリーンからはみ出す" created
2019-01-28 00:24 Updated by: yknk
Comment

原因

メイン画面で supportedInterfaceOrientations が呼び出されず、ランドスケープ固定とならない。 Webの情報によると、iOS11以降のiPadからマルチタスク対応が有効になったことが原因と考えられる。 現状のプロジェクト設定は、"Requires full screen"にチェックが付いていないため、 マルチタスクに対応するとみなされている。

参考ページ

supportedInterfaceOrientations not called in iPad
https://stackoverflow.com/questions/35274428/supportedinterfaceorientations-not-called-in-ipad

iOS で Landscape モードのみサポートする
https://qiita.com/codelynx/items/e68252153bcaed9a3784

2019-01-28 00:25 Updated by: yknk
Comment

対策1 プロジェクト設定

プロジェクト設定

Targets / MIDITrail / General / Deployment Info / Status Bar Style にて、 "Requires full screen"にチェックマークをつける。

対策2 リファクタリング

本不具合の対策としては、本来必要なかったが、以下修正を施しておく。

MIDITrailApp

UINavigationController* で定義されていたメンバを、MTNavCtrl* に置き換えた。 MTNavCtrl は UINavigationController のラップクラス。

MIDITrailApp::createViews

メンバのナビゲーション制御オブジェクトを生成するとき、UINavigationController ではなく MTNavCtrl から生成するように修正。

MTNavCtrl

UINavigationController のラップクラスとして、ナビゲーション制御クラスを追加。 将来、回転制御のために shouldAutorotate や supportedInterfaceOrientations を オーバーライドする必要が出たときのために追加しておく。

MTMonitorViewCtrl::supportedInterfaceOrientations

MIDI IN モニタ画面は、横長のみに対応(UIInterfaceOrientationMaskLandscape)ではないため、 全方向への対応(UIInterfaceOrientationMaskAll)に修正。 この誤りにより、何らかの不具合が発生しているわけではないが、念のため修正しておく。

MTTabBarCtrl::shouldAutorotateToInterfaceOrientation

廃止になったメソッドを削除。

2019-01-31 23:41 Updated by: yknk
  • Status Update from Open to Closed
  • Resolution Update from None to Fixed

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login