SwiftUI在iOS18环境下模拟器和真机的区别

背景

由于之前有个时钟项目,用到了SwiftUI和swift。

这次接了个工具开发项目,考虑到最近Appstore上架哀鸿遍野,想着直接用SwiftUI写整个项目。

SwiftUI比UIkit的好处就在于快速的预览功能,加快开发阶段里UI布局环节。

经过实践,发现Xcode里的预览和模拟器运行基本一致,除了导航条、本地数据加载等。

摘要

由于项目中集成了第三方SDK、以及视频导入功能调测,让我不得不用真机测试。

在实践中,我意外发现了以下问题,代码在模拟器和真机上不一致:

包括:

1 Spacer.frame(height:80) 无效

这种方法在模拟器上可以有效控制空白的高度或者宽度,

但是在真机上无效。

经过测试,有效的写法是:

HStack.padding(.top,80)

2 ScrollView自适应无效

在模拟器上直接使用ScrollView嵌套实现滑动,但是在真机上发现需要明确设置宽高才可以。

3 NavigationStack体系布局bug

在某种情况下出现“HStack.padding(.top,80)”的实际跟预期不一致的情况,一般认为,电池栏的高度是20、导航栏的高度是44,但是第一排的按钮间距实际设置到了120才实现预期效果,而这些问题在模拟器上是不存在的。

4 Text控件文字末尾出现点点

Text文本,同样的视图环境、同样都是四个字,出现模拟器正常、真机末尾点点点的情况。

解决方案:强制设置最小宽度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈老师还在写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值