IOS画面適合方案により、拡大縮小windowのコード例を実現します。


背景:
会社にiPadのプロジェクトがあります。11年に開発されたのです。その時のiPadは1024 x 768の解像度しかないので、画面に合う問題がありません。frameは全部書きました。その後、さまざまなサイズのiPadが相次いで現れました。本来は画面に合わない問題があるはずですが、このプロジェクトはスタートチャートが設置されていません。ページは自動的にズームして画面全体を満たしています。各解像度の幅は同じぐらいです。だから、大きな問題はありません。しかし、2020年3月4日、アップルは App Store app Xcode storyboard( ) app を要求しています。これまでは起動図を設置しないで、巧妙な方法では使えません。
理想的な適合案はもちろんAutoLayoutですが、AutoLayoutの変更が大きすぎて、現在は適応周期が短いので、この案は淘汰されました。その後AutoResizingを使うことを考えて、変更はとても小さいですが、プロジェクトが大きいので、ページが多いです。変更時間はまだ長いです。
最後に起動図をセットしないと正常に適応できるという原理を考えた。拡大縮小Windowを使う案を考える
ズームスキーム
1、window拡大縮小

  self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
  CGFloat scaleX = [UIScreen mainScreen].bounds.size.width / 1024;
  CGFloat scaleY = [UIScreen mainScreen].bounds.size.height / 768;
  self.window.transform = CGAffineTransformMakeScale(scaleX, scaleY);
  CGRect rect = self.window.frame;
  self.window.frame = CGRectMake(0, 0, rect.size.width, rect.size.height);
2、スクリーンサイズの解像度は自分で書く必要があります。screenのboundsは使えません。

#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width 
   #define SCREEN_WIDTH 1024
#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height 
   #define SCREEN_HEIGHT 768
3、windowにビューを追加して、window.cnterを使ってビューを中央に置かないでください。window.frame.origginはもう(0,0)ではないからです。

alertView.center = CGRectMake(1024 * 0.5, 768 * 0.5)
この案の欠点
1、windowなどの比率を拡大・縮小すると、iPad Pro 11インチの上下に少し黒い縁があります。
2、windowの幅を拡大・縮小してスクリーン全体に広げたら、iPad Pro 11インチは少し変形します。明らかではありません。
3、ぼんやりしています。目立たないです。
4、いつ新しくiPadを作ったら、幅の高さが以前のiPadと比べて大きく変わって、スケーリングプランが適用されなくなります。
ここで、IOSスクリーン適合方案の拡大縮小windowを実現するためのコード例についての記事を紹介します。IOSの拡大縮小windowの内容については、以前の文章を検索してください。または、下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。