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

Xcode 11 初体验

SwiftUI、storyboad其中有两篇博客也介绍到了SwiftUI:SwiftUI - 百行代码变十行,Swift再创辉煌 和 WWDC - SwiftUI - 初恋般感觉 代码块 代码块也做了调整...,选中后点击鼠标左键或者键盘Enter 键,就可以在指定窗口打开这个文件了。...当你项目关联了版本控制工具,比如 Git, Xcode 会检测出当前文件哪些地方相对于上次递交版本有更改,并且会通过在左边显示一个蓝色线条标记出来: Change Bar 点击左键还可以选择 show...为什么这么说呢?...关于Swift UI 更新 其中有两篇博客也介绍到了 SwiftUI : SwiftUI - 百行代码变十行,Swift再创辉煌 WWDC - SwiftUI - 初恋般感觉 参考:Apple 官方文档一线搬砖工人

3.1K10

在 Text 中实现基于关键字搜索和定位

本节内容仅代表在考虑处理上述问题想法和思路。其中不少功能已经超出了原本需求,增加这些功能一方面有利于更多地融汇以前博客中知识点,另一方面也提高了解题乐趣。...transcription 中结果值已经为高亮显示值( 当前选择高亮位置 ),且下一个序号位置仍在同一个 transcription 中,那么将放弃滚动。...为了达成这个目标,我们首先需要记录在 List 中,哪些 transcription 正在被显示,以及该 transcription 索引。...onAppear,每个视图退出显示窗口都会调用它 onDisapper。...了解更多内容,请阅读 SwiftUI 视图生命周期研究[9] 一文优先定位于最靠近屏幕中央搜索结果:/// 从 List 当前显示 transcription 中就近选择 match positionprivate

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

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

在手机应用中,软件开发者会使用不同技术来实现界面的显示,流行界面语言比如 Flutter,就是闲鱼应用交互界面语言。...也许你会这样和他说: 这个程序上有一段名人名言,中英文版,上面一行是「天助自助者」,下面是「God helps those who help themselves」希望它能被点按选中选中时候一定注意中英文两句话要一起被选中...那么为什么要说这些呢?因为 SwiftUI 设计思路正是描述性编程语言,你将上面这段话稍微整理一下,就是 SiwftUI 写法。比如下面这段文字就是整理好 SwiftUI 代码: ?...其中 View 表示一个视图,比如我们在手机上看到一个滑条,一张图片,一个列表等种种,都叫做视图;而 Modifier 则是修饰器,它作用是为视图增加功能,比如圆角,动画,阴影,边际,背景等等。...你会说,嗨,这么简单事,用 SwiftUI 美术自己就能写。

2.1K40

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

Table 中上下文菜单Q:如果在 TABLE 上添加了一个上下文菜单,如何确定哪一行导致了菜单显示(无需选择该行)?...快速检索数组元素Q:为什么没有简单方法将 TABLE 选择行映射到提供表内容数组元素上?似乎唯一方法是在数组中搜索匹配 id 值,这对于大表来说似乎效率很低。...A:你最好选择是使用 ScrollView 和 ScrollViewReader,并在 onAppear 或新内容进来时滚动到最底部视图。建议尝试旋转滚动视图。...Swiftcord[12] 代码展示了如何在 SwiftUI 下实现倒置列表。阅读 优化在 SwiftUI List 中显示大数据集响应效率[13] 一文,了解苹果工程师推荐方法。...这个技巧对于处于屏幕顶部或底部视图十分有用。详情请参阅 推文[15] 。动画转场Q:为什么下面的代码没有显示动画转场。

14.7K30

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

是否有任何建议用来检测列表选择,类似于 “NavigationLink”,但不导航到另一个视图(例如,显示 Sheet 或从列表选择一个选项 )?...假设我们想创建一个类似于 iMessage 视图,在那里你可以看到一个信息列表(与本例无关),在视图底部有一个文本框。当用户点击文本字段,键盘会在其工具栏中出现一个文本字段。...这在 SwiftUI 中仍适用,还是说 struct 本身现在被视为 viewModel ?A:SwiftUI 试图与应用程序整体架构无关。...不过,在传统 viewModel 意义上,建议将视图( 结构本身 )作为视图模型。...在有些情况下,想根据视图是否折叠来做决定( 例如,如果展开,在详细视图中显示一条信息,如果折叠,则显示一个警告或其他指示 )。

12.2K20

优化在 SwiftUI List 中显示大数据集响应效率

也就是当显示主界面菜单列表视图已经完成了实例创建(可以通过在 ListEachRowHasID 构造函数中添加打印命令得以证明),因此也不应是实例化列表视图导致延迟。...在 SwiftUI 视图生命周期研究[3] 一文中,对 List 如何对子视图显示进行优化做了一定介绍。...当仅通过 ForEach 来指定显示标识,List 会对这些视图显示进行优化,仅在需要显示才会对其进行实例化。...除非没有其他选择,否则并不推荐大家对 UIKit ( AppKit ) 控件进行重新包装,应使用尽可能微小侵入方式对 SwiftUI 原生控件进行补充和完善。...,并在首次滚动到列表底部也没有延迟。

9.1K20

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

这是个宝贵机会,能让认真体验一把 SwiftUI 并探索其内部工作原理。 起初项目工作良好,SwiftUI 表现可以说非常满意,甚至创建了自己修改器,以便更轻松地显示警报消息。...但在开始实现更复杂检查器视图,特别是涉及带有 / 不带步进器或颜色选择多个文本字段,整个运行速度开始剧烈下降。...它显示效果就是主窗口中一张表,出于学习目的,当然还是想继续用 SwiftUI 喽。毕竟初次尝试肯定会有种种问题,应该再给它一次机会。...刚开始以为是因为地图编辑器 SpriteKit 主视图仍在后台渲染。所以我尝试在工作表显示出来后禁用渲染,但结果没有任何改变。 变更从一种环境传播至另一环境也遇到了类似的延迟问题。...但我至少可以更好地控制应用程序行为,而且根据需求随意调整各种元素。 总之,经历了这么一番波折,还是很庆幸自己果断放弃了 SwiftUI。这可能是在这个项目上做过最明智选择

4.9K20

SwiftUI 中创建自适应程序化导航方案

取消选中高亮 // 可以用类似的方式,改善当 contentID 变化后,content 列仍会有灰色选择提示问题 DispatchQueue.main.asyncAfter...= nil { List(selection: $store.detailID)} else { Text("Empty")}修改状态后,List 仍会用灰色显示上次选中项目即使取消了状态...( 例如修改 contentID ),List 仍会将上次选中状态用灰色选中框进行表示。...正以聊天室、Twitter、博客留言等讨论为灵感,从中选取有代表性问题和技巧制作成 Tips ,发布在 Twitter 上。...每周也会对当周博客上新文章以及在 Twitter 上发布 Tips 进行汇总,并通过邮件列表形式发送给订阅者。订阅下方 邮件列表[8],可以及时获得每周 Tips 汇总。

4.2K30

iOS开发之WidgetKit补充

在 iOS 14 正式版发布之前写了一篇博文《iOS开发之WidgetKit》,iOS 14 正式版发布以后,经测试,Apple 改变了 Widget API,所以本文进行一个补充说明(在前文基础上做了修改...配置App Groups.jpg 如果文件需要共享,可以选中 App 中需要共享给 Widget 文件,然后勾选 Widget Target。....configurationDisplayName:设置 Widget 在添加界面中显示标题。 .description::设置 Widget 在添加界面中显示描述。...getTimeline 方法里有一个 policy 参数,表示刷新时机,可以选择.never(刷新),.atEnd(Entry 显示完毕之后自动刷新) 或 .after(date)(到达某个特定时间后自动刷新...也可以通过.widgetURL(myDeeplink)方法配置当 Widget 被点击触发哪个 Deep Linking,也可以通过使用链接使 Widget 不同部分触发不同 Deep Linking

1.9K30

使用 SwiftUI 创建一个灵活选择

前言 最近,在正在开发一个在 Dribbble 上找到设计 SwiftUI 实现时,想到了一个点子,可以通过一些酷炫筛选器扩展该项目以缩小结果列表。...在使用 UIKit 总是将这种类型视图实现为具有特定 UICollectionViewFlowLayout UICollectionView。但在 SwiftUI 中该如何实现呢?...所有符合该协议对象必须实现两个属性:displayedName(在选择器中显示名称)和 isSelected(一个布尔值,指示特定选项是否已选择)。...这就是为什么引入了一个 FontWeight 枚举,其中包含以 UIFont 权重命名所有可能情况。...这就是为什么将分隔行结果映射到元组中,其中包含每行和 UUID 值。 由于如此,可以向 ForEach 循环提供 id 参数。

24420

SwiftUI + Core Data App 内存占用优化之旅

本文将通过对一个演示 App 进行逐步内存优化方式( 由原先显示 100 条数据要占用 1.6 GB 内存,优化至显示数百条数据仅需 200 多 MB 内存 ),让读者对 SwiftUI 视图存续期...当子视图进入惰性容器可视区域SwiftUI 会调用它 onAppear 闭包,子视图退出可视区域,会调用 onDisappear 闭包。...尽管从表面上来看,惰性容器仅会在视图进入可视区域才会对其进行操作,但一旦该视图被显示过( body 被求过值 ),即使该视图离开可视区域,SwiftUI 仍会保存视图 body 值。...图片 尽管上述优化技巧可能会对滚动流畅度产生一定影响( 视觉上不明显 ),不过考虑到它所带来巨大收益,在本例中应该是一个相当不错选择。...数据多份拷贝 当图片数据从 SQLite 经 Core Data 最终通过 SwiftUI 显示,实际上在内存中至少保存了三份拷贝: 行缓存 托管对象上下文( 托管对象被填充后 ) 显示该图片 SwiftUI

2.4K40

SwiftUI + Core Data App 内存占用优化之旅

本文将通过对一个演示 App 进行逐步内存优化方式( 由原先显示 100 条数据要占用 1.6 GB 内存,优化至显示数百条数据仅需 200 多 MB 内存 ),让读者对 SwiftUI 视图存续期...当子视图进入惰性容器可视区域SwiftUI 会调用它 onAppear 闭包,子视图退出可视区域,会调用 onDisappear 闭包。...尽管从表面上来看,惰性容器仅会在视图进入可视区域才会对其进行操作,但一旦该视图被显示过( body 被求过值 ),即使该视图离开可视区域,SwiftUI 仍会保存视图 body 值。...Navigator-Debug 尽管上述优化技巧可能会对滚动流畅度产生一定影响( 视觉上不明显 ),不过考虑到它所带来巨大收益,在本例中应该是一个相当不错选择。...数据多份拷贝 当图片数据从 SQLite 经 Core Data 最终通过 SwiftUI 显示,实际上在内存中至少保存了三份拷贝: 行缓存 托管对象上下文( 托管对象被填充后 ) 显示该图片 SwiftUI

1.2K10

解析SwiftUI布局细节(二)循环轮播+复杂布局

这篇我们还是说我们关于SwiftUI东西,再提一下Demo代码已经提交上Git了,目前Demo进度为一级页面基本上结束,地图点击大头针添加也刚处理完,代码有需要小伙伴可以去Git看看,项目地址...GeometryReader 主要作用就是能够获取到父View建议尺寸,这就是它主要作用,要没有它我们面临可能就是无休止传值了,SwiftUI 既然是声明式UI,按理解你就没有办法去获取某一个视图父视图之类...3、再提一点关于上面说滚动视图,在UIKit中我们可以用UICollectionView搞定一切,但是在SwiftUI中没有这个控件,建议采用方式是 ScrollView + HStack + VStack...除了这个List,还要一个From我们也可以了解下,他们俩肉眼可见区别 在选中这个点上区别。...spring():.none) /// 监听当前索引变化,最开始初始化为0是监听, .onChange(of: currentIndex, perform

11.8K20

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

欢迎大家在 Discord 频道[2] 中进行更多地交流将某个视图在父视图中居中显示是一个常见需求,即使对于 SwiftUI 初学者来说这也并非难事。...解决方法是:.background(.blue, ignoresSafeAreaEdges: []) ,排除掉希望忽略安全区域。...另外,由于 Color、Rectangle 会在两个维度进行填充( Spacer 会根据容器选择填充维度 ),因此,使用它们作为填充物,将会自动使用全部可用空间( 包括高度 ),无需通过 .frame...为本文这种通过多种方法来解决一个问题方式添加了【小题大作】标签,目前使用该便签文章还有:在 Core Data 中查询和使用 count 若干方法[6]、在 SwiftUI 视图中打开 URL...每周也会对当周博客上新文章以及在 Twitter 上发布 Tips 进行汇总,并通过邮件列表形式发送给订阅者。订阅下方 邮件列表[10],可以及时获得每周 Tips 汇总。

6.6K40

一段因 @State 注入机制所产生“灵异代码”

如果注释这行代码,fullScreenCover 中将显示 n = 2 ( 符合预期 )。这是为什么?...打印 Parent View update),Sheet 代码块中 SheetInitMonitorView 没有任何输出( 意味着闭包没有被调用 ),只有在模态视图进行显示SwiftUI 才执行...在 ContextView 包含 Text 情况下,在 Sheet 显示后,n _wasRead 将转变为 true( Sheet 视图显示后,方创建关联 )。...dump(_n) }}Sheet 视图上下文当 SwiftUI 创建并显示一个 Sheet 视图,并非在现有的视图树上创建分支,而是新建一棵独立视图树。....id(n) .onChange(of:n){_ in } // id 或 onChange 均可以在添加显示内容情况下,创建关联在 创建自适应高度 Sheet 推文[4] 中,便使用过 id

1.9K20

分享15个有用,你可能还不知道CSS小技巧,建议每个前端开发者都了解下

这在样式化列表或导航菜单特别有用。 使用:first-child和:last-child伪类,你可以直接选择并样式化父元素第一个和最后一个子元素,而无需为它们添加额外类或选择器。...:checked伪类允许你在这些元素被选中进行样式设置,提供了一致且视觉上令人愉悦用户体验。 通过使用:checked伪类,你可以为复选框和单选框输入在被选中设置样式。...这使得你可以自定义它们外观,使其与整体设计风格一致,并提供更好用户反馈。你可以改变其背景色、边框样式、图标等,以突出显示选中状态。...这可以用于创建滚动效果或突出显示特定部分,而无需依赖JavaScript。 使用:target伪类,你可以根据URL片段标识符来选择并样式化特定元素。...当用户点击包含片段标识符链接,浏览器会自动滚动到对应元素,并应用:target伪类所定义样式。这使得你可以在页面上创建滚动到特定部分效果,或者突出显示被定位元素。

16340

老人新兵 —— 一款 iOS APP 开发手记

SwiftUI、Combine 以及 Core Data 中新特性对很有吸引力兴趣驱动,没有商业压力和历史包袱,因此可直接采用尚未成熟或前景不明技术在经过一番了解后,最终选择 SwiftUI +...技术准备十多年接触代码最大担心不是知识储备不够,而是没有手感了。这个忧虑最终也得到了证实。...这也是目前 SwiftUI 中控件显示设定一个问题( 主要是官方并不推荐和支持这样行为 ),各个 view 中如果通过 UIKit 修改设定的话,之间隔离。... app 中有几处 Sheet 弹出响应就比较慢( 将 view 移出 sheet,使用 NavigationLink 调用显示就很好 ),尤其是退出响应更慢。...开发环境下 app 里云数据库中数据和 app store 下载 app 数据互通( 同一个 id ),开发模拟器里数据也不能和实机数据云同步,必须在多个实机中才能测试。

2.5K40

如何结合 Core Data 和 SwiftUI

在此项目中,我们将仅使用少量 Core Data 功能,但是这种功能将很快扩展——只想首先了解一下它。...当您创建 Xcode 项目要求您选中 Use Core Data 框,它应该导致对项目的更改: 现在,您有了一个名为 Bookworm.xcdatamodeld 文件。...我们需要确保该获取请求随着时间推移保持最新,以便在创建或删除学生,我们 UI 保持同步。 SwiftUI 有一个解决方案,而且——您猜对了——这是另一个属性包装器。...为了解决这个问题,我们将在列表下方创建一个按钮,每次点击都会添加一个新随机学生,但是首先我们需要一个新属性来存储托管对象上下文。 让重申一下,因为这很重要。...我们无法在代码中看到该类,因为它是在构建项目自动生成,就像 Core ML 模型一样。

11.8K30

Xcode 11 初体验(Xcode工作流改进(Workflows))

趁着最新更新正是版本 Xcode 11 于是就有这一篇 Xcode工作流改进(Workflows) 工程创建 [1240] 创建工程进来,就会发现 User Interface 可以进行选择 SwiftUI...、storyboad 其中有两篇博客也介绍到了 SwiftUI : SwiftUI - 百行代码变十行,Swift再创辉煌 代码块 [1240] 代码块也做了调整,界面漂亮直观、编辑显示也非常清晰!...Editor Only:只显示代码编辑器。 Editor and Canvas:代码编辑器和 SwiftUI预览视图。 Editor and Assistant:代码编辑器和辅助视图。...指定文件打开位置 上面我们介绍了窗口分割,在 Xcode 11 中,你还可以按住 Option + Shift,然后在左边点击要打开文件,这时会出现窗口选择提示 [1240] 你可以用键盘,或者鼠标任意方式选择你要打开这个文件窗口...,选中后点击鼠标左键或者键盘 Enter键,就可以在指定窗口打开这个文件了。

2.5K40

GeometryReader :好东西还是坏东西?

在本文发表之前,发起了一个 投票[4] 询问大家对 GeometryReader 看法,从结果来看,对其持负面印象比例较高。...对于为什么采用 Extension 方式,设计者可能考虑了以下两个因素: 通过 Binding 方式向上传递信息,并不是当前官方 SwiftUI API 主要设计方式。...这种非常规布局逻辑是推荐将其直接用作布局容器原因之一。 GeometryReader 不支持对齐指南调整,因此上面的描述使用了原点。...作为一个视图,GeometryReader 只能在被评估、布局和渲染后,才能将获取数据传递给闭包中代码。...在处理类似需求,我们应优先采用更符合 SwiftUI 思维方式来考虑布局方案,而非依赖某个特定几何数据进行计算。

45070
领券