ios - SwiftUI vs Interface Builder 和故事板
问题描述
我是新的 iOS 开发人员,我使用故事板和界面生成器来设计我的应用程序 UI。但现在我看到很多人都在使用 SwiftUI。我搜索了 SwiftUI 并发现了一些关于它的观点,因为 SwiftUI 与新的 Xcode 设计工具无缝协作,以使我们的代码和设计完美同步。但我无法将它与 Interface builder & Storyboard 进行比较。SwiftUI 相对于 Interface Builder 和 Storyboard 的优缺点是什么?SwiftUI 会完全移除 Interface Builder 和 storyboards 吗?
解决方案
在故事板之类的界面构建器中,xib
您可以看到自己在做什么。您获取一个组件,然后将其添加到情节提要中,这就是您设计 UI 的方式,但是如果您以编程方式执行相同的操作,那么它会变得更加困难,因为您什么都看不到,而且您必须有经验才能这样做。每次你必须构建一个应用程序来查看更改,UI
但SwiftUI
解决了这个问题,因为它会在你编写代码时不断更新。为了解决这个问题,Apple 想出了SwiftUI
一个可以帮助您查看并排发生的事情的方法。任何人都可以从 移动Storyboard
到SwiftUI
。
就个人而言,我Storyboard
从那时开始搬到XIB
然后我去了Flutter
一个完全不同的地方,并且SwiftUI
受到了很大的启发Flutter
。您必须记住,SwiftUI
支持从iOS 13
. 您必须从 开始storyboard
,然后当您获得经验时,您可以转到SwiftUI
.
更新:另外,还有另一种开发 UI 的方法,那就是通过编程 UI 编码。我已经以编程方式开发 UI 已经很长时间了,就个人而言,它有助于更多地理解 UI 的概念,并且您可以开始添加许多扩展,这将使您的项目在后期易于维护。当您在一个小组中开发时,界面构建器会在很多时候引发合并冲突,这很快就会变得很痛苦。(2020 年 10 月 30 日)
推荐阅读
- raspberry-pi - 适用于 Turtlebot3 的 Raspberry pi 上的默认登录 ubuntu
- protractor - sendKeys(protractor.Key.TAB) 和 (protractor.Key.RETURN) 引发错误
- python - python:win32com 模块:扫描邮箱以查找 excel 附件的脚本需要多次运行
- three.js - Three.js 将纹理设置为内联 svg
- html - 如何用弹性盒子而不是网格来做这个设计?
- reactjs - 我如何“弥合” React DOM 差距
- windows - 尽管使用了带有 powershell 5.1 的运行空间池,但没有并行化
- json-ld - 如何在java中解析JSON-LD数据并将其转换为java对象
- mysql - 在 Docker 中连接到外部 MySQL 数据库
- json - 具有动态键和特殊字符的 Ansible 访问 JSON 对象