环境
Flutter 3.29
macOS Sequoia 15.4.1
Xcode 16.3
概览
UIView与Widgets的比较
在UIKit使用UIView类的对象进行页面开发,布局也是UIView类的对象,在Flutter中使用的是Widget,在概念上Widget可以理解成UIView。
差异:
- 有效期: Widgets是不可变的,它的生存期只到被改变前。当Widgets或它们的状态改变了。Flutter’s 框架会创建一个widget的实例,而UIKit中的UIView是不会重新创建,它是可变的,绘制一次并且在使用setNeedDisplay()使其失效之前不会重新绘制
- 轻量: Widgets相对更轻量,一个原因是它们是不可变,而且它们不负责显示和绘制,更多的是一种语义的描述。
Flutter 包含 Matterial 组件库,其中的Widgets都符合了Material设计指引。Material设计是个适配多平台的设计系统,也支持iOS
但如果想用iOS的UI风格,可以使用Cupertino widgets libray