SwiftUI-调整视图窗口尺寸
固定尺寸
使用.frame设定宽高值
在声明文件里已定义的视图下方书写
1 | 代码示例 |
这样书写后窗口依旧是可缩放的,还需要使用.windowResizability设定缩放规则
在WindowGroup下方书写.windowResizability
1 | 代码示例 |
写完以上,窗口最大化图标变灰且实现屏蔽缩放
Note
.windowResizability的三种规则
.contentSize
内容大小。以定义的视图尺寸设定窗口可调节大小。若组件尺寸大于视图,则会按照组件尺寸固定,但通常组件小于视图。通常用于不可调窗口或范围可调窗口(一般仅限制最小尺寸而不限制最大尺寸,这是特例)
.contentMinSize
最小内容尺寸。以定义的视图最小尺寸设定窗口可调节最小尺寸。需要提前定义视图的最小尺寸。通常仅用于限制最小尺寸窗口
.automatic
自动。相当于自动实现.contentSize和.contentMinSize的功能。建议写具体规则,避免混乱
无限制
使用.frame设定最大宽高值
需求是无限制,那么把宽高值设为.infinity无限大即可
在视图声明文件里已定义的视图下方书写
1 | 代码示例 |
系统默认以窗口内最大组件尺寸为窗口最小缩放尺寸,下面的步骤可省略,但为了规范可以添上
在WindowGroup下方书写.windowResizability
1 | 代码示例 |
写完以上,窗口可以实现全屏最大化、最大程度缩小(非最小化至Dock栏)
范围限制
限制最大尺寸
使用.frame设定宽高值
在视图声明文件里已定义的视图下方书写
1 | 代码示例 |
在WindowGroup下方书写.windowResizability
1 | 代码示例 |
写完以上,可以屏蔽窗口全屏最大化,实现最大程度缩小(非最小化至Dock栏)
限制最小尺寸
使用.frame设定宽高值
在视图声明文件里已定义的视图下方书写
1 | 代码示例 |
在WindowGroup下方书写.windowResizability
1 | 代码示例 |
写完以上,可以实现窗口全屏最大化,屏蔽最大程度缩小(非最小化至Dock栏)