新闻详情

新闻详情

首页 / 资讯中心 / 详情

macOS27 上可变界面尺寸 iOS App 揭秘

发布时间:2026/11/16 4:14:29来源:尧图网络
macOS27 上可变界面尺寸 iOS App 揭秘
把一个 iOS App 放到 Mac 上运行拖动窗口边缘变的只有宽高吗在 macOS 27 上做了一次小实验答案颇有意味随着用户调整窗口大小SwiftUI 环境中的 Size Class 也会发生变化。原本常在横竖屏适配中见到的compact和regular如今在鼠标拖动之间有了更直观的表现。这件事值得留意。对于沿用固定设备假设的界面一次再普通不过的窗口缩放就可能让布局捉襟见肘。说起 Size Class许多开发者会条件反射地想到“iPhone 用 compactiPad 用 regular”。这套经验便于入门却容易先入为主。SwiftUI 通过两个环境值描述水平和垂直方向的空间分类Environment(\.horizontalSizeClass)privatevarhorizontalSizeClassEnvironment(\.verticalSizeClass)privatevarverticalSizeClass两者的取值可以是.compact、.regular也可能为nil。水平对应宽度垂直对应高度。它们描述的是视图所处的布局环境不能简单当成设备型号的别名。相关定义可见 Apple 的 UserInterfaceSizeClass 文档。因此看见一个宽窗口便断言两个方向都是regular难免以偏概全。窗口的宽与高是两回事两个方向的分类也应分别观察。这次实验的做法很直接让界面同时显示实际可用尺寸与两个 Size Class然后拖动窗口观察数值。核心代码并不复杂structSizeClassProbe:View{Environment(\.horizontalSizeClass)privatevarhorizontalEnvironment(\.verticalSizeClass)privatevarverticalvarbody:someView{GeometryReader{proxyinVStack(alignment:.leading,spacing:12){Text(宽\(proxy.size.width,specifier:%.1f)pt)Text(高\(proxy.size.height,specifier:%.1f)pt)Text(水平\(name(horizontal)))Text(垂直\(name(vertical)))}.padding()}}privatefuncname(_value:UserInterfaceSizeClass?)-String{switchvalue{case.compact:compactcase.regular:regularcasenil:nilunknowndefault:unknown}}}这里有个细节不能张冠李戴GeometryReader测量的是当前视图获得的布局空间单位为点它既不是显示器分辨率也不是包含标题栏的窗口外框尺寸。将它与 Size Class 并排展示恰好可以对照“具体尺寸”和“空间分类”这两个层次。测试入口同样要选对。在 Xcode 中应选择My Mac (Designed for iPad)运行 iOS App 的 Mac 版本。多平台项目里的普通My Mac则可能启动原生 macOS App。两者虽然都出现在 Mac 桌面上观察结果却不能混为一谈。在本次 macOS 27 实测中拖动 iOS App 窗口确实能够观察到 Size Class 随之变化。这个结果说明至少在当前测试环境下分类会随着窗口调整而更新不能将启动时读到的值视作一成不变。不过窗口尺寸连续变化Size Class 只有少量离散状态。拖动了一段距离数值变了分类保持原样完全可能。此次观察也不足以归纳出适用于所有设备、系统版本和运行方式的固定阈值。把某次测得的宽度刻进代码反倒容易刻舟求剑。对 SwiftUI 开发者而言接下来便顺理成章让布局持续读取环境在分类变化时重新组织内容。例如在水平空间宽裕时并排展示两块内容在紧凑时改为上下排列structAdaptiveContent:View{Environment(\.horizontalSizeClass)privatevarhorizontalprivatevarlayout:AnyLayout{horizontal.regular?AnyLayout(HStackLayout(alignment:.top,spacing:20)):AnyLayout(VStackLayout(alignment:.leading,spacing:20))}varbody:someView{layout{GroupBox(概览){Text(主要信息)}GroupBox(详情){Text(补充内容)}}.padding()}}代码不必监听鼠标拖动也不必把 Size Class 复制到一份额外的状态中。环境值更新后SwiftUI 会重新求值布局自然跟着调整。这里将nil一并落入纵向布局是示例明确选择的回退策略。当然Size Class 也不能包办所有适配。两块内容是否真的放得下还受文字长度、字体大小和容器空间影响。决定界面的整体组织方式可以参考 Size Class判断一组按钮能否并排容纳则更适合交给ViewThatFits或具体的布局计算。各司其职才能游刃有余。macOS 27 上的这次实验把一个老道理摆到了眼前用户手中的窗口随时都可能改变界面的空间条件。我们写下的是布局规则用户决定的是窗口大小。让界面懂得因地制宜拖动窗口时的从容便会水到渠成。感谢宝子们的观赏我们下次再会吧
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉