首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ask Apple 2022 与 SwiftUI 有关的问答(上)

假设我们想创建一个类似于 iMessage 的视图,在那里你可以看到一个信息列表(与本例无关),视图的底部有一个文本框。当用户点击文本字段键盘会在其工具栏中出现一个文本字段。...这有点笨拙,我不认为有两个文本框是正确的做法。另外,按照这种方法,@FocusState 变量会变得没有反应,而且它不能被设置为 nil( 返回到以前的视图并没有移除键盘 )。...是否可以SwiftUI 完成( 不使用 UIKit )?给我一些方向来完成它吗?A:一般来说,我建议使用 .safeAreaInset(edge: .bottom) 来实现底部文本字段。...阅读 SwiftUI 的动画机制[8] 一文,了解更多有关动画的内容。自适应高度 SheetQ:如何在 iOS16 呈现与动态内容高度相匹配的 Sheet?...但是从一个文本字段到下一个文本字段的聚焦感觉不够流畅,而且每当我一个文本字段输入一个字母,我的 CPU 使用率似乎会飙升到 70% — 100%。

12.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

我庆幸果断放弃了SwiftUI:它还不够成熟

但在开始实现更复杂的检查器视图,特别是涉及带有 / 不带步进器或颜色选择器的多个文本字段,整个运行速度开始剧烈下降。...但每当 SwiftUI 更新检查器视图(这种更新可能出现在移动过程,甚至是输入文本字段的时候),渲染速率都会下降到每秒 10 到 15 帧,而且相当不稳定。这显然让人无法容忍。...但这会导致检查器的值出现延迟,因此地图编辑器的交互过程(比如使用移动工具)结果不准确,所以效果还是称不上完美。 但我觉得这可能只是个独立问题,并不能因此把 SwiftUI 一棒子打死。...越来越慢 实现了第一个检查器之后,我开始研究另一个主题:Sprite 资产编辑器。利用这款工具,我可以用多个 sprite 拼接成复杂的资产,再最终为它们制作动画。...尽管几乎不涉及任何其他数据,界面更新前单击这些按钮,也会产生将近一秒钟的巨大延迟。我刚开始以为是因为地图编辑器的 SpriteKit 主视图仍在后台渲染。

4.9K20

掌握 SwiftUI 的 Safe Area

UIKit ,开发者需要利用 safeAreaInsets 或 safeAreaLayoutGuide ,才能确保将视图放置界面的可见部分。 SwiftUI 对上述过程进行了彻底的简化。... SwiftUI ,开发者通常只有需要获取 StatusBar + NavBar 的高度或 HomeIndeicator + TabBar 的高度才会使用到 safeAreaInsets 。...从 iOS 14 开始SwiftUI 计算视图的安全区域,将软键盘在屏幕上的覆盖区域(iPadOS 下,将软键盘缩小后键盘的覆盖区域将被忽略)也一并进行考虑。...首先,背景并没有充满全部屏幕,其次键盘弹出,我们并不希望背景因为安全区域的变化而发生改变。...safeAreaInsetList2 遗憾的是, iOS 15 之前,SwiftUI 并没有提供调整视图安全区的手段,如果我们想通过 SwiftUI 的手段创建一个自定义 Tabbar ,列表中最后的内容将被

7.5K31

Ask Apple 2022 与 SwiftUI 有关的问答(下)

SwiftUI 4 ,可以使用 .scrollContentBackground(.hidden) 隐藏列表的默认背景searchableQ:是否有办法.searchable() 修饰器以编程方式设置搜索字段的焦点...TextField 内容验证Q:如何实现一个只接受数字的 SwiftUI TextField,小数是允许的。A:向文本字段提供 FormatStyle 以实现自动将文本转换为各种数字。...但是,此转换仅在文本字段完成编辑才会发生,并且不会阻止输入非数字字符。目前 SwiftUI 没有 API 可以限制用户字段输入的字符。...A:解决办法:保留 TextField ,但当它不能被编辑,有条件地设置 disabled(true),当它可以编辑使用 disabled(false) 。... SwiftUI ,有一个从第一版开始就存在但尚未公开的纯 SwiftUI 实现的滚动容器 —— _ScrollView 。

14.7K30

如何在 SwiftUI 视图中显示应用图标和版本

本文中,我将展示如何创建一个可访问的 SwiftUI 视图,既能显示应用图标和版本,又能在各种文本大小和外观下看起来都很好:获取应用图标构建视图的第一步是从主包获取应用图标。...我们一个水平堆栈显示应用图标和版本,间距为12点。我们 Image 视图中显示应用图标。...但是,应用图标只能作为命名的 UIImage 检索,所以我们需要先创建 UIImage,然后再转换为 SwiftUI Image。我们一个垂直堆栈显示应用版本,包括一个标签和应用版本字符串。...最终结果是一个各种文本大小下都看起来很好的视图:应用显示版本信息视图Copy codeContentView.swiftimport SwiftUIstruct ContentView: View...我们学习了如何在 SwiftUI 应用显示应用图标和版本信息。

12422

SwiftUI 状态管理系统指南

我们的主体,我们将把这两个属性分别绑定到一个相应的TextField上,以使它们可以被用户编辑: struct SignupView: View { var handler: (User)...这是因为我们不只是将普通的String值传入这些文本字段,而是与我们的State包装的属性本身绑定。...为了更详细地探讨这意味着什么,让我们现在假设我们想创建一个视图,让我们的用户编辑他们最初注册输入的个人资料信息。...观察对象 State和Bingding的共同点是,它们处理的是SwiftUI视图层次结构本身管理的值。...小结 SwiftUI管理状态的方式绝对是该框架最有趣的方面之一,它可能需要我们稍微重新思考数据应用的传递方式——至少涉及到将被我们的UI直接消费和修改的数据是这样。

5K20

提高效率 |ArcGIS Pro 中所有快捷键一网打尽

创建注记 用于注记构造工具的键盘快捷键 键盘快捷键 操作 注释 Ctrl+W 查找文本 使用最顶层所选要素图层的标注表达式或字段值替换文本文本字符串。...将未完成的文本翻转 180 度至随沿边的左侧或右侧。使用随沿要素创建文本,可以使用此快捷键。 O 使用“随沿要素”选项。 打开编辑器设置对话框。使用随沿要素创建文本,可以使用此快捷键。...平移立体影像对时,地形跟踪会自动将立体光标保持高程表面上。此功能在导航立体显示非常有用。如果要通过远程网络连接使用非常大的影像,建议您不要使用此功能,因为系统检索正确信息可能会造成严重延迟。...如果选择了多个行,会从活动单元格所在的行开始移动。这在按顺序逐条处理表记录、查看或编辑各条记录及地图上查找其表示的要素尤为有用。 Ctrl+U 或 Ctrl+单击左上方单元格 切换选择内容。...编辑表 用于编辑表的键盘快捷键。铅笔图标将显示正在编辑的行左侧的第一个像元。该单元格同样用加粗的深绿色勾勒轮廓。

80120

SwiftUI TextField 进阶 —— 事件、焦点、键盘

事件 onEditingChanged 当 TextField 获得焦点(进入可编辑状态),onEditingChanged将调用给定的方法并传递true值;当 TextField 失去焦点,再次调用方法并传递...onCommit 当用户输入过程按下(或点击)return键触发 onCommit(无法通过代码模拟触发)。...键盘类型 iPhone ,我们可以通过keyboardType来设定软键盘类型,方便用户的录入或限制录入字符范围。... SwiftUI 3.0 之前,我们必须在主视图上另外绘制或者使用非 SwiftUI 的方式来解决问题, SwiftUI 3.0 ,由于添加了原生设置键盘辅助视图(下文具体介绍)的功能,解决上述问题将不再困难...通过 toolbar 创建 SwiftUI 3.0 ,我们可以通过ToolbarItem(placement: .keyboard, content: View)来自创建键盘的辅助视图(inputAccessoryView

13.1K10

SwiftUI - 百行代码变十行,Swift再创辉煌

而对于开发者来说,新发布的 SwiftUI 可能是最吸引人的特性, 苹果公司软件工程高级副总裁Craig Federighi的演示,我们可以轻松地把一百行的前端代码缩减到十几行。...的确,我们平时开发很多的时间都浪费了这个方面,然而作为牛逼的,我也相信必然会一统江湖的 Swift 也是不忍心让开发人员掉入这样的坑SwiftUI 只是一个开始---打开新世界的开始 // 声明式语法...例如,编写需要包含文本字段的项目列表,开发者可以用代码描述每个字段的对齐方式、字体和颜色。代码也比以前更简单,更易于阅读。 ? 这种声明式风格非常适用于像动画这样复杂的元素。...当在设计工具工作,所编辑的内容会立刻反映到代码上,如果从模拟器切换到手机,手机也能立马看到预览效果。 ?...SwiftUI需要自动计算和动画转换。

3K40

SwiftU:将状态绑定到UI控件

SwiftUI的@State属性包装器允许我们自由修改视图结构体,这意味着当程序更改时,我们可以更新视图属性以匹配。 但是,使用UI控件,事情会更复杂一些。...例如,如果要创建用户可以键入的可编辑文本框,可以创建如下所示的快速用户界面视图: struct ContentView: View { var body: some View {...但是,该代码不会编译,因为SwiftUI想知道文本字段文本存储位置。 请记住,视图是其状态的函数——文本输入框只能在反映存储程序的值显示某些内容。...SwiftUI需要的是结构的一个字符串属性,它可以显示文本输入框,还将存储用户文本输入框中键入的任何内容。...继续之前,让我们修改文本视图,使其文本字段的正下方显示用户名: Text("Your name is \(name)") 注意它是如何使用name而不是$name?

2.9K10

SwiftUI - 百行代码变十行,Swift再创辉煌

而对于开发者来说,新发布的 SwiftUI 可能是最吸引人的特性, 苹果公司软件工程高级副总裁Craig Federighi的演示,我们可以轻松地把一百行的前端代码缩减到十几行。...的确,我们平时开发很多的时间都浪费了这个方面,然而作为牛逼的,我也相信必然会一统江湖的 Swift 也是不忍心让开发人员掉入这样的坑SwiftUI 只是一个开始---打开新世界的开始 声明式语法...例如,编写需要包含文本字段的项目列表,开发者可以用代码描述每个字段的对齐方式、字体和颜色。代码也比以前更简单,更易于阅读。 [1240] 这种声明式风格非常适用于像动画这样复杂的元素。...当在设计工具工作,所编辑的内容会立刻反映到代码上,如果从模拟器切换到手机,手机也能立马看到预览效果。...SwiftUI需要自动计算和动画转换。

2.3K30

SwiftUI WWDC作为开发者的我最激动的部分

SwiftUI 所有Apple平台都是原生的 ---- SwiftUI创造世界上最创新、最直观的用户界面方面积累了数十年的经验。...用户喜欢苹果生态系统的所有方面,比如控件和特定于平台的体验,都可以代码很好地表现出来。SwiftUI是真正的本地应用程序, ?...SwiftUI语法是什么样的呢 ---- SwiftUI使用声明性语法,因此您可以简单地声明用户界面应该做什么。例如,您可以编写一个包含文本字段的项列表,然后描述每个字段的对齐方式、字体和颜色。...当您在设计画布工作,您编辑的所有内容都与相邻编辑的代码完全同步。当您键入时,代码作为预览立即可见,并且您对该预览所做的任何更改都会立即出现在您的代码。...Xcode会立即重新编译您的更改,并将其插入到您的应用程序的运行版本,随时可见和可编辑。 ? 如何去学习SwiftUI ----

2.3K30

SwiftUI 实现视图居中的若干种方法

SwiftUI ,有很多手段可以达成此目的。本文将介绍其中的一些方法,并对每种方法背后的实现原理、适用场景以及注意事项做以说明。...即使文本宽度超出了 HStack 给出的建议宽度,但 HStack 布局,仍会保留其最小厚度,导致下图上方的文本无法充分利用矩形视图的宽度。解决方法为:Spacer(minLength: 0)。...3.0 开始使用 background 添加符合 ShapeStyle 协议的元素,可以通过 ignoresSafeAreaEdges 参数设置是否忽略安全区域,默认值为 .all ( 忽略任何的安全区域...Spacer HStack 只能进行横向填充,并不具备纵向的高度高度为 0 ),因此 HStack 最终的需求高度与 Text 的高度一致。...我为本文这种通过多种方法来解决一个问题的方式添加了【小题大作】标签,目前使用该便签的文章还有: Core Data 查询和使用 count 的若干方法[6]、 SwiftUI 视图中打开 URL

6.6K40

Xcode 11 初体验

将 Assistant、和 Vesion Editor下的Autor 选项卡合并为一项,并从主导航移除,向下移到每个编辑面板,组成 Editor Option。...Editor Only:只显示代码编辑器。 Editor and Canvas:代码编辑器和SwiftUI预览视图。 Editor and Assistant:代码编辑器和辅助视图。...指定文件打开位置 上面我们介绍了窗口分割, Xcode 11 ,你还可以按住 Option + Shift,然后左边点击要打开的文件,这时会出现窗口选择提示 你可以用键盘,或者鼠标任意方式选择你要打开这个文件的窗口...,选中后点击鼠标左键或者键盘的Enter 键,就可以指定窗口打开这个文件了。...开发和调试,随时暗黑和明亮模式之间进行切换。 Asset目录可以使你轻松的控制图像和颜色暗黑和明亮模式之间进行切换。

3.2K10

SwiftUI 中用 Text 实现图文混排

王巍 SwiftUI 的 Text 插值和本地化[3] 一文对此做了详尽的介绍。...DynamicType从 Xcode 14 开始,开发者可以预览快速检查视图不同动态类型下的表现。Text("欢迎访问 \(logo) !")...从上图中可以看出,动态类型仅对文本有效,Text 的图片尺寸并不会发生改变。使用 Text 实现图文混排,如果图片不能伴随文本的尺寸变化而变化,就会出现上图中的结果。....font(.body) } .padding() }}上面的代码,通过 ScaledMetric 将图片的高度与 .body 文本风格的尺寸进行了关联,当动态类型发生改变...Text 的任意位置由于范例代码采用了 SwiftUI 4 提供的 ImageRenderer 完成视图至图片的转换,因此仅支持 iOS 16+低版本的 SwiftUI ,可以通过用 UIHostingController

4.3K30

如何在 SwiftUI 创建条形图

系列文章 如何在 SwiftUI 创建条形图 SwiftUI 的水平条形图 iOS 16 中用 SwiftUI Charts 创建一个折线图 iOS16 中用 SwiftUI 图表定制一个线图... Swift 图表中使用 Foudation 库的测量类型 开始图表布局 SwiftUI 对探索不同布局和预览实时视图结果是很友好的。...从将包含 BarChartView 以及可能的其他文本或数据的视图开始。这个 BarChartView 包含一个标题和一个图表区,它们由文本和圆角矩形表示。...文本视图的宽度被限制条形图宽度的范围内,而且条形图的标签文本会被截断,条形图的文本视图也被限制条形宽度的范围内,并且文本可以被隐藏起来。...SwiftUI 是一个很好的平台,用于创建视图和快速重构独立的子视图。 SwiftUI 构建条形图需要做一些工作,随着使用数据来试用条形图,可以确定更多的定制化。

5.1K10

SwiftUI TextField进阶——格式与校验

本文为【SwiftUI 进阶】系列文章的一篇,本文中,我将介绍如何在TextField实现如下功能: •屏蔽无效字符•判断录入的内容是否满足特定条件•对录入的文本实时格式化显示 textfieldDemo1...可能的格式化解决思路 •录入过程激活TextField内置的Formatter,让其能够文本发生变化时对内容进行格式化•文本发生变化时调用自己实现的Format方法,对内容进行实时格式化 对于第一种思路...如何在TextField屏蔽无效字符 现有屏蔽字符方法 SwiftUI,可以通过设置仅使用特定的键盘类型来实现一定程度上的录入限制。....red : .primary) 上面的代码录入的数字小于100会将文字显示颜色设置为红色。 当然,我么也可以延续上面方案的思路,delegate的textfield方法文本进行判断。...本文仅涉及了TextField的部分内容,SwiftUI TextField进阶】的其他篇幅,我们将探讨更多的技巧和思路,让开发者SwiftUI创建不一样的文本录入体验。

8.1K20

全新Swift从入门到进阶实战探探iOS APP

设计有机地发展:决策过程,使用运行的代码提供反馈14。这种方法允许你开发过程逐步完善设计,而不是一开始就进行彻底的设计和分析。...SwiftUI自2019年引入以来,作为UIKit的继承者,主要被用于创建应用程序视图18。这表明SwiftUI不仅适用于传统的用户界面设计,还特别适合于需要大量数据收集和填写文本字段的应用程序。...文本输入密集型应用:同样地,考虑到SwiftUI处理多个填充文本字段方面的高效性18,它可以被广泛应用于需要用户频繁输入文本的应用程序。...这些应用程序可能包括社交媒体平台、博客编辑器或任何需要用户输入大量文本内容的服务。...Swift开发,可以将动态规划的思想应用于算法设计和优化,特别是处理需要在给定限制下找到最优解的问题21。

25610
领券