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

面向所有人 UI 编程 :透过点按弹窗初尝 SwiftUI

SwiftUI 集众家之长,具有诸多优秀特性,可以预见它将会出现在诸多应用程序中。若你有兴趣,我会在其它文章中详解 SwiftUI,本文只着重讲其中弹窗写法与逻辑。 你会怎样描述一个程序?...本文将用如下图中一个例子来展示如何设置点按弹窗。下图中程序功能很简单:长按这句名言后,会出现点按弹窗,你可以点击复制按钮将这句话复制到系统剪贴板中。 ? 试想你是一名美术,完全不了解程序。...那么为什么要说这些?因为 SwiftUI 设计思路正是描述性编程语言,你将上面这段话稍微整理一下,就是 SiwftUI 写法。比如下面这段文字就是整理好 SwiftUI 代码: ?...SwiftUI 由两代码组成,分别是 View 和 Modifier。如下图所示,这两代码都可以在 Xcode 中直接拖出来用,你要做只是玩拼图把它们拼在一起拼出你想要功能。...因为写文章时候已经是晚上了,手机自动切换到了夜间模式,我们应用程序也完成了自动切换。这是如何做到?我会在其它文章中详细讲解。

2.1K40

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

为什么会使那么惊喜? 我们都知道前端工作离不开适配,虽然之前Apple Xib一些设计适配起来很方便了。但是在pad或者tv上还是要写不同代码去做在不同平台运行。...用户喜欢苹果生态系统所有方面,比如控件和特定于平台体验,都可以在代码中很好地表现出来。SwiftUI是真正本地应用程序, ?...SwiftUI是什么 ---- SwiftUI是一种创新、非常简单方法,可以利用Swift强大功能在所有苹果平台上构建用户界面。使用一组工具和api为任何苹果设备构建用户界面。...SwiftUI语法是什么样 ---- SwiftUI使用声明性语法,因此您可以简单地声明用户界面应该做什么。例如,您可以编写一个包含文本字段项列表,然后描述每个字段对齐方式、字体和颜色。...SwiftUI 工具是什么样 ---- Xcode 11包含了直观新设计工具,使用SwiftUI构建界面变得像拖放一样简单。

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

iOS13 Scene Delegate

iOS13以前一个应用程序可以有不止一个window,同样现在一个应用程序也可以有不止一个scene。...2)、SceneDelegate三处新增内容 iOS13以后,Xcode新建iOS项目中有增加三处新增内容: 1> 添加一个SceneDelegate 新增SceneDelegateClass 2...大多数应用程序只有一个场景,但是可以通过配置该项创建更多场景,如用于响应推送通知或特定操作特定场景。 Enable Multiple Windows: 默认为NO,其设置为YES可以支持多个窗口。...该数组每个元素是一个字典,字典中有三个键值,分别为 Configuration Name: 当前配置名字,必须是唯一; Delegate Class Name: 场景代理名,将与该Scene...四、SwiftUI中SceneDelegate SwiftUI创建iOS 13项目,所以SwiftUI应用程序主要依靠SceneDelegate来设置应用程序初始UI。

5.2K20

从 iPhone OS 1.0 到 iOS 14 编程语言演变

之前关于苹果在 iOS 14 中使用了 Swift 和 SwiftUI 文章中,统计了 iOS 中使用 Swift 和 SwiftUI 内置应用程序数量。...范围 在开始分析之前,让澄清一下范围。首先只分析了通常意义上 'iOS',即内核上方所有内容。不包括 XNU 内核和低级固件(SecureROM、基带、...)。...因为在设备外运行分析,所以我不能依赖正确设置权限。 相反,使用了二进制文件必须是 Mach-O 文件才能执行事实。...检测不同编程语言 在之前关于苹果在 iOS 14 中使用 Swift 和 SwiftUI 文章中,统计了使用 Swift 和 SwiftUI 内置应用程序。...事实证明,如果您使用 Configuration Intent 创建一个 iOS 14 小部件,Xcode 将自动生成一些包含 Objective-C 文件,例如: @objc(ConfigurationIntent

2K30

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

例如,你可能希望有一个同时定义了 “窗口组” 和 “文档组” 应用程序,或者有一个 “窗口组” 和一个辅助 “窗口” 场景应用程序。...onAppear、init、viewDidLoadQ:在应用程序中,在 UIHostingController 中托管了 SwiftUI 视图,这些视图都处于一个 UITabBarController...在常规宽度下,我们在详细视图中有一个带有导航堆栈侧边栏。在紧凑宽度下,我们有一个标签栏,每个标签都有一个导航堆栈。...是否可以认为,如果水平尺寸是紧凑( compact ),它就是折叠?还是有一个更可靠判断方法?A:紧凑( compact )确实对应于一个折叠导航分割视图。...如何改善一个包含大量 UITextField 视图效率Q:一个包含 132 个 UITextField SwiftUI 视图。知道这个数量很大,但这是由业务逻辑决定

12.2K20

为什么SwiftUI视图使用结构体?

SwiftUI并非如此:我们更喜欢将结构体用于整体视图,这有两个原因。 首先,有一个性能因素:结构体比更简单,更快。...之所以说性能因素,是因为很多人认为这是SwiftUI使用结构体主要原因,而实际上这只是更大范围一部分。...在SwiftUI中,我们所有的视图都是简单结构体,几乎可以自由创建。想想看:如果您制作一个包含一个整数结构体,则结构体整个大小就是:一个整数。没有其他。...没有从父,祖父母或曾祖父母等继承多余值——它们完全包含您可以看到内容,仅此而已。...实际上,您不能找到比使用Color.red作为视图更好主意:除了“用红色填充空间”之外,它不包含任何信息。

3.1K10

Ask Apple 2022 中与 Core Data 有关问答 (下)

主程序与扩展程序数据同步Q:一个应用程序一个扩展程序,它们都读取相同 Core Data 数据库。但是,当我在主应用程序中进行更改时,扩展程序在重新启动之前不会看到更改。...一个基于文档应用程序( document based app ),一些文件以及 Core Data 创建 sqlite 文件被制作成了一个包( package bundle )。...通过创建两个单独属性,一个包含纯文本字符串,另一个包含属性字符串 Transformable 数据是否为最好方法?是否有另一种更好方式可以不通过两个属性来减少存储数据量?...数据模型中有一个 Int16 类型 userOrder 属性,在表视图行被重新排序后,有什么好方法来保存数据新顺序?...筛选关系数据Q:发现在 SwiftUI 中使用 @FetchRequest 是将用户界面与 Core Data 数据绑定很好手段。然而,在使用关系来获得同样无缝绑定时,碰到了一个小问题。

3.2K20

为什么 SwiftUI 视图使用结构体

SwiftUI 并非如此:我们更喜欢将结构体用于整体视图,这有两个原因。 首先,有一个性能因素:结构体比更简单,更快。...之所以说性能因素,是因为很多人认为这是 SwiftUI 使用结构体主要原因,而实际上这只是更大范围一部分。...在 SwiftUI 中,我们所有的视图都是简单结构体,几乎可以自由创建。想想看:如果您制作一个包含一个整数结构体,则结构体整个大小就是:一个整数。没有其他。...没有从父,祖父母或曾祖父母等继承多余值——它们完全包含您可以看到内容,仅此而已。...实际上,您不能找到比使用 Color.red 作为视图更好主意:除了“用红色填充空间”之外,它不包含任何信息。

2.4K50

Swift 中热重载

但是如果您和我一样,在特别的一天中,对代码库进行 200 - 500 次迭代,该怎么?它增加了。 有一种更好方法,被其他平台所接受,并且可以在 Swift/iOS 生态系统中实现。...无论您是编写 Node 还是任何其他 JS 框架,都有一个使用热重载设置。Go 也提供了热重载(本博客使用了该特性) 另一个例子是谷歌 Flutter 架构,从一开始就设计用于热重载。...如果您与从事 Flutter 工作工程师交谈,你会发现他们最喜欢 Flutter 开发者体验一点就是能够实时编写他们应用程序。当我为《纽约时报》写了一个拼字游戏时,很喜欢它。...你唯一不能改变是你初始化 API。 Host 变化不能完全内联,所以这些在 Release 构建中被删除。最简单方法是做一个单独提交,交换此单行代码,然后在工作流程最后删除它。...逻辑注入如何? 像 MVVM / MVC 这样标准架构可以获得免费逻辑注入,重新编译你,当方法重新执行时,你已经在使用新代码了。

1.9K20

苹果在 iOS 15 中使用了 Swift 和 SwiftUI

在本文中,分析了 iOS 15 内置应用程序 : iOS 15 中有多少个二进制文件? 开发这些应用程序使用了哪种编程语言? 使用 Swift 编写了多少个应用程序?...苹果是否在某些内置应用程序采用了 SwiftUI? 方法 创建本文方法和工具在之前帖子中进行了详细说明。...一个例子是开发应用程序 Clutters,在那里使用 Swift、SwiftUI、Objective-C 和 C,使用最合适编程语言来解决特定Dev问题。...iOS 15 包含了 114 个使用 SwiftUI 二进制文件,几乎是 iOS 14 3 倍。...(InCallService) 设置? 这些新应用程序加上之前使用 SwiftUI 5 个应用程序: 翻译 快捷指令 电话 AirPods 连接弹出窗口?

2.2K30

Swift 周报 第四十二期

岁月无情呀,那么各位程序猿和攻城狮们,你们心中最担心容貌变化是哪一个? 上期话题结果 这个结果反映了员工在工作和生活平衡方面的个体差异。...提供示例和案例研究旨在展示案例关键路径多功能性和实用性,强调它们在简化代码、增强 SwiftUI 绑定、组合应用程序功能等方面的潜力。...希望展示这些用例将鼓励将案例关键路径纳入语言中,并激发进一步创新应用程序。 案例研究:SwiftUI Bindings 大小写键路径使从枚举而不是一堆独立选项驱动 SwiftUI 导航成为可能。...这些新方法为我们在 SwiftUI 中创建精确且有限范围动画提供了更灵活选择。...话题讨论 那个活在记忆中帅气少年,已慢慢变成了大叔模样。岁月无情呀,那么各位程序猿和攻城狮们,你们心中最担心容貌变化是哪一个? 欢迎在文末留言参与讨论。

20510

架构之路 (五) —— VIPER架构模式(一)

VIPER架构模式是MVC或MVVM另一种选择。虽然SwiftUI和Combine框架创建了一个强大组合,可以快速构建复杂ui和在应用程序中移动数据,但它们也面临着各自挑战和对架构看法。...它包含在starter中,因此您可以在本教程结束时完成应用程序。 这个示例使用是Pixabay,这是一个获得许可照片共享站点。要将图像拉入应用程序,您需要创建一个免费帐户并获得一个API密钥。...这与SwiftUIView相对应。 交互器Interactor是一个在演示者presenter和数据之间进行中介。它从演示者presenter那里获得方向。...在本例中,主要entity是Trip,它包含一个路点Waypoints列表,路点是旅程中各个站点。 这个应用程序包含一个DataModel,它包含一个旅行列表。...router处理从一个屏幕到另一个屏幕转换,设置一个视图所需。 在命令式UI范例中——换句话说,在UIKit中——路由router将负责显示视图控制器或激活segue。

17.4K10

架构之路 (七) —— iOS AppSOLID原则(一)

目前,您应用所有都直接使用 ExpenseModel。您不能在不定义持久容器情况下创建此类实例。最好将与 Core Data 设置和预览相关属性组合在一起。...第一个是下边界,第二个是上边界。 根据枚举值,它将返回一个适合一天或一个范围。 2. Cleaning up the Reports 下一步是合并重复。...class ReportsDataSource: ObservableObject 在中添加一个新属性来存储您希望此实例使用日期范围: let reportRange: ReportRange 然后...对于 SwiftUI 预览,您将始终显示日常开支。 只需更改数据源类型,您就可以使视图更加通用。 这显示了这两个文件中有多少代码重复。 现在,即使您创建了一般视图,您仍然没有在任何地方使用它。...使用@Published 需要一个; 它不能在协议中使用。

4.7K10

用 Flutter 搭建标签+导航框架

模式还是按照 SwiftUI ,我们写一个标签+导航模式,具体Demo 效果如下所示,我们在看几个比较具体概念性东西。 ?...Widget 是 Flutter 功能抽象描述,也就是一切皆为 Widget(这点反应在SwiftUI觉得和 View 性质有点像)。...,比如说我们在 Demo 中有建立一个和 main 平级 TabsPage,我们引用时候是下面这样: /// 导入一个和自己平级文件 import 'TabsPage.dart';...那在比如说,在 home 文件夹下有一个 HomePage.dart ,那我们是否还能直接像上面那样直接去引用?...Scaffold ,Scaffold 是 Material library 中提供一个 Widget, 它提供了默认导航栏、标题和包含主屏幕 Widget body属性。

1.2K10

构建稳定预览视图 —— SwiftUI 预览工作原理

将通过两篇文章来分享对预览功能认知和理解,并探讨如何构建稳定预览。本文将首先剖析预览功能实现机制,让开发者了解哪些情况是预览必然无法处理。...],其中提到了一个有趣现象。...这意味着编译器在编译这段代码时,可以依赖信息很少,只能在很小范围内进行类型推断,以提高效率。这也是本段代码无法在预览中正常运行主要原因。...在该方法中,大概率进行了定义预览相关环境设置设置预览初始状态等操作。最后,再创建了几个专门用于预览进程。...预览并没有启动完整模拟器,因此某些代码无法在预览中实现预期行为,例如( 预览不存在应用程序生命周期事件 ): struct ContentView: View { var body:

47710

干货 | 关于SwiftUI,看这一篇就够了

SwiftUI内部按上述所说逻辑,判断对应视图是否需要更新UI,最终再次呈现给用户,等待交互; 以上就是SwiftUI交互流程,其每一个节点之间数据流转都是单向、独立,无论应用程序逻辑变得多么复杂...Button,其父视图是一个ContenView,其实ContenView还会被一个RootView包含起来,RootView是SwiftUI在Window上创建出来了。...总之在SwiftUI中给一个View设置属性,已经不是为当前元素提供约束,而是用一系列容器来包含当前元素,为后续布局计算做准备。...SwiftUI; 虽然SwiftUI优点很多,但是其使用门槛很高,只能在iOS 13以上系统使用;仅这点,很多公司和开发者望而却步,目前主流应用最低支持iOS 9,至少3年之内,SwiftUI只能作为一个理论知识储备...,所以其还有很长路要走; SwiftUI这种与平台无关、纯描述UI框架,恰恰是跨平台方案正确方向,将来其能否统一整个大前端

5.8K10

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

在 2019 年 WWDC 大会上,苹果推出了一个全新 SwiftUI 框架,这是一个现代化 UI 界面编码结构,它是基于 Swift从头开始构建。...这些年,也有一些用 SwiftUI 重写 UIKit 应用程序案例,去年奈飞新版 iOS App 登录界面也完全由 SwiftUI 重构。...这可以说是压死骆驼最后一根稻草了,决定放弃 SwiftUI,继续用 AppKit。 总    结 其实没能在项目中用到 SwiftUI,会让感觉有点遗憾。...但继续使用 AppKit 最大优点,就是没有任何延迟而且一切功能完全符合预期。当然,整个构建过程更繁琐,而且自动布局功能也不怎么好用。...但我至少可以更好地控制应用程序行为,而且根据需求随意调整各种元素。 总之,经历了这么一番波折,还是很庆幸自己果断放弃了 SwiftUI。这可能是在这个项目上做过最明智选择。

4.9K20

肘子 Swift 周报 | Swift,超越苹果生态!

在过去两年中还了解到两款尚未公开 SwiftUI 复刻框架,其中一款同样面向全平台。 Swift 也未忘记在嵌入式领域探索。...为了便于阅读,对原始内容进行了简化,并调整为更加书面化表达。本次分享核心是传达这样一个中心思想:尽管这些新框架是为了解决现有框架中问题而设计,但我们不应被过往经验和惯例所限制。...Swift 编译应用程序与库之间能够无缝交互,免除了重新编译需求。...除了在聊天工具和助手应用场景外,生成式 AI 还能在哪些领域发挥作用?...文章中不仅阐述了这一概念实现过程,还附带了一个完整演示,展现了如何在 SwiftUI 环境下应用这一技术。

11610

SwiftUI中使用UIKit视图

该方法在UIViewRepresentable生命周期中会多次调用,直到视图被移出视图树(更准确地描述是切换到另一个包含该视图视图树分支)。...但SwiftUI无法真正进行无限量调用来绘制视图,因此它必须以某种方式缩短递归。为了结束递归,SwiftUI包含了很多原始类型(primitive types)。...如何实现类似原生TextFiled链式调用?...苹果最近两年对SwiftUI文档支持提高了不少,但还没到令人满意地步。作为SwiftUI开发者,推荐大家最好购买一份javier开发A Companion for SwiftUI。...本文并没有涉及包装具有复杂逻辑代码协调器同SwiftUI或Redux模式沟通交互的话题,里面包含内容过多,或许需要通过另一篇文章来探讨。

8.1K20

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

Swift Identified Collections 是基于 OrderedDictionary 实现一个拥有键属性数组。它唯一要求是元素必须符合 Identifiable 协议。...自定义布局Q:经常想根据列表中最长或最短文字来布置各种小组件。鉴于动态文本大小在应用程序运行时可能会发生变化,衡量给定字体文本大小最佳方法是什么?A:你好!我们新布局协议支持这个功能。...连锁动画Q:在 SwiftUI 中,如何实现连锁动画?例如,想先给一个视图做动画,当动画完成后立即启动另一个动画。A:不幸是,目前不可能实现连锁动画。...Too complex to type checkQ:在 iOS 14 SwiftUI 中遇到一个问题,试图有条件地显示 3 个符合 Shape 协议对象中一个。...然后用 SwiftUI Image 来加载,data 还挺大,当多个图同时加载,会卡顿和内存占用,请问这种情况下怎么改善A:首先尽量保证采用异步加载方式加载和创建图片,比如 SwiftUI AsyncImage

14.7K30
领券