背景
由于之前有个时钟项目,用到了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文本,同样的视图环境、同样都是四个字,出现模拟器正常、真机末尾点点点的情况。
解决方案:强制设置最小宽度。