Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> iOSアプリ開発(Swift、Objective-C) -> UIWindowベースの昔のアプリが、最新のxcodeでレイアウト崩れを起こす対策

UIWindowベースの昔のアプリが、最新のxcodeでレイアウト崩れを起こす対策

iOS8.0とか、その頃に作ったiOSアプリが、xcode11とiOS13の環境で、おそろしくレイアウト崩れしたりします・・・orz

レイアウト崩れの原因はそれぞれかも知れませんが、
筆者の場合は、スクリーンのheightと、UIWindowのheightがなぜか大幅に違っていることが原因でした。

以前は、iOS側で、自動的に縦幅の調整をしてくれていたようですが、
自動調整の方法が変わったのでしょうね。

NSLog("%f", [UIScreen mainScreen].bounds.size.height);

の値と、

NSLog("%f", windows.bounds.size.height);

とかの、メインウインドウの縦幅の値が違うのが原因で、
レイアウト崩れしてしまっている場合の対策です。

古いアプリ用なので、Objective-Cで書きますw

[window setFrame: CGRectMake(0, heightPadding, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
こんな感じで、UIScreen mainScreenのwidth、heightと、 メインウインドウのwidth、heightを、同じにしてあげればOKです。

最初に記事を書いた日:2019/10/25

この記事をシェアする

このエントリーをはてなブックマークに追加
縺雁ー城▲縺遞シ縺弱↑繧峨昴う繝ウ繝医し繧、繝GetMoney!

関連記事

資料室のトップに戻る
Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> iOSアプリ開発(Swift、Objective-C) -> UIWindowベースの昔のアプリが、最新のxcodeでレイアウト崩れを起こす対策
▲Top English