小编这次要给大家分享的是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屏幕适配方案如何实现缩放窗口的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。