IOS屏幕适配方案如何实现缩放窗口

  介绍

小编这次要给大家分享的是IOS屏幕适配方案如何实现缩放窗口,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。


公司有个iPad项目(只支持横屏),是11年开发的,那时的iPad只有1024 x768的分辨率,所以没有屏幕适配的问题,框架都是写死的。后来不同尺寸的iPad相继出现,本来应该会出现屏幕不能适配的问题,但是由于该项目没有设置启动图,页面会自动等比例缩放撑满整个屏幕,各分辨率的宽高比相差不多,所以并没有出现太大问题。但是2020年3月4日,苹果要求<代码>所有提交至应用商店的应用都须使用Xcode故事板(故事板)来提供程序的启动屏幕>

最理想的适配方案当然是自动布局,但改为自动布局改动太大,目前适配周期短,所以这种方案就淘汰了。然后考虑使用AutoResizing,改动小了很多,但是由于项目很大,页面很多,改动时间还是有些长。

最后考虑了不设置启动图能正常适配的原理。考虑使用缩放窗口的方案


1,窗口缩放

自我。窗口=[[ui窗口alloc] initWithFrame: CGRectMake (0, 0, 1024, 768)];
  CGFloat scaleX=[UIScreen mainScreen] .bounds.size。宽/1024;
  CGFloat写入scaleY=[UIScreen mainScreen] .bounds.size。高度/768;
  self.window。变换=CGAffineTransformMakeScale (scaleX,写入scaleY);
  CGRect中矩形=self.window.frame;
  self.window.frame=CGRectMake (0, 0, rect.size。宽度,rect.size.height); 

2,屏幕尺寸的分辨率需要自己写死,不能使用屏幕的范围

 # define SCREEN_WIDTH [UIScreen mainScreen] .bounds.size.width
  改为# define SCREEN_WIDTH 1024
  #定义SCREEN_HEIGHT [UIScreen mainScreen] .bounds.size.height
  改为# define SCREEN_HEIGHT 768 

在窗口上添加视图,不要使用window.center来让视图居中。因为window.frame.origin已经不是(0,0)了。

alertView。中心=CGRectMake (1024 * 0.5, 768 * 0.5)

<强>此方案的缺点

1,如果使窗口等比例缩放,iPad Pro 11英寸上下会有一点黑边。
2,如果使窗口宽高缩放撑满整个屏幕,iPad Pro 11英寸会略微有些变形,不明显
3,会有点模糊,不明显
4,如果哪天新出一款iPad宽高比和以前的iPad差别比较大,缩放方案就不适用了。

看完这篇关于IOS屏幕适配方案如何实现缩放窗口的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。

IOS屏幕适配方案如何实现缩放窗口