经验分享 未读
SwiftUI 学习笔记 42:项目 8-4 宇航员随着复杂性的增加,犯错的几率也随之增加,Swift在这里是相当不容忍的-就像你现在无疑会看到的那样,即使第20行出现一个小错误也可能导致第5行出现随机错误,这可能是令人沮丧。
好吧,希望今天的报价对你有所启发。我之所以今天特别选择它,是因为最好留给读者阅读,但就是这样:不要惊慌!这些类型的问题很常见,现在解决这些问题的最简单方法是注释掉你最近添加的任何代码,并继续这样做,直到你的代码起作用为止。然后,你可以缓慢地重新引入代码,直到找到导致编译中断的部分,然后对其进行修复。
挑战最好的学习方法之一是尽可能频繁地编写自己的代码,因此,你应该尝试以下三种方式扩展此应用程序,以确保你完全了解正在发生的事情。
将启动日期添加到MissionView任务徽章下方的。
修改AstronautView以显示这位宇航员执行的所有任务。
在ContentView其中显示一个栏按钮,以在显示发射日期和显示机组人员名称之间切换。
第一个挑战应该是微不足道的,第二个挑战应该是棘手的,最后一个挑战……好吧,我们只能说它将推动你。如果花费的时间比你想象的要长得多,请不要感到惊讶!
我的代码ContentView ...
经验分享 未读
SwiftUI 学习笔记 41:项目 8-3 宇航员在今天的话题中,我鼓励你停下来并继续进行设计。我敢肯定,有些人会跳过这一想赶快走到尽头的事情,但我希望你不要。正如宇航员约翰·格伦(John Glenn)所说:“我认为,比其他任何人都更有力量的宇航员的素质都是好奇心–他们必须到达一个从未有过的地方。”
使用ScrollView和GeometryReader显示任务详细信息当用户从我们的主列表中选择一个阿波罗任务时,我们希望显示有关该任务的信息:其图像,任务徽章以及机组人员中的所有宇航员及其角色。前两个并不太难,但是第二个需要更多的工作,因为我们需要在两个JSON文件中将乘员ID与乘员详细信息进行匹配。
让我们从简单开始并逐步进行:创建一个名为MissionView.swift的新SwiftUI视图。最初,它仅具有一个mission属性,以便我们可以显示任务徽章和说明,但是不久之后我们将对其添加更多内容。
就布局而言,此东西需要滚动,VStack并带有可调整大小的任务徽章图像,然后是文本视图,然后是分隔符,以便所有内容都可以推送到屏幕顶部。我们将使用GeometryReader该图像来设置任务图像的最大宽度,尽管通过反复试验,我发现任务 ...
经验分享 未读
SwiftUI 学习笔记 40:项目 8-2 宇航员一路走来,你将遇到一个重要的Swift功能,称为generics。我绝对在初学者Swift之外也定义了此功能,但是正如你将看到的,泛型使我们仅需一点点思考就可以创建高度可重用的代码。
可重用的代码很重要,因为它可以帮助我们以更少的工作来获得更大,更好的结果。但是,正如拉尔夫·约翰逊(Ralph Johnson)所说:“在软件可重用之前,首先必须要可用” –与泛型一样好,只有先以更简单的方式解决了问题,我们才会开始使用它们。
项目名:Moonshot
加载特定种类的可编码数据在这个应用程序中,我们将两种不同的JSON加载到Swift结构中:一种用于宇航员,另一种用于任务。以易于维护且不会使我们的代码混乱的方式进行此操作需要一些思考,但是我们将逐步实现它。
首先,拖入该项目的两个JSON文件。这些可以在本书的GitHub存储库中的“ project8-files”下找到–查找astronauts.json和missions.json,然后将它们拖到项目导航器中。在添加资产时,你还应该将所有图像复制到资产目录中-这些位于“图像”子文件夹中。宇航员和任务徽章的图像都是由NASA制作的,因此根据 ...
转载内容 未读
超链接查看太麻烦,Excel怎么快速提取单元格内的超链接地址?超链接是Microsoft Office中最常用的功能之一。通过超链接可以快速转到指定的目标,这个目标可以是一个网页,一个邮件,一张图片,一个视频,一个文本等。一个Microsoft Excel文档中可能存在多个超链接,为保证数据的准确性,需要对超链接进行核对,怎么才能快速查看这些超链接的地址呢?一个一个的尝试太过麻烦,既浪费时间,也有可能出错。今天我们一起来学习一下怎么批量提取Microsoft Excel单元格内的超链接地址,操作非常简单便捷。
本文为转载文章,以下内容来源于
超链接查看太麻烦,Excel怎么快速提取单元格内的超链接地址?
百家号
Microsoft Excel怎么插入网页超链接?有些小伙伴还不清楚怎么插入超链接,那只能占用你们一些宝贵的时间来一起学习一下,大神们请弯道超车,直接浏览下面的操作步骤。
1、首先右键单击【A1】单元格,然后左键单击右键菜单中的【超链接(I)】,在弹出的【插入超链接】对话框的【 ...
经验分享 未读
SwiftUI 学习笔记 39:项目 8-1 宇航员如果今天的报价来自第一个登上月球的人尼尔·阿姆斯特朗,那将是合适的。早在2000年,他就说:“科学是关于什么;工程是关于可能的事情。” 我不了解你,但是我发现这给了我很大的启发:每次创建一个新的Xcode项目时,我们都有一块空白的板块可以使用,而这正是我们想要的。
今天,我们正在学习构建Moonshot的技术,但是与所有正在学习的技术一样,它们构成了你更广泛的知识的一部分,供你在未来几年中随心所欲地进行混合和重新混合。
今天,你有五个专题工作过,在你将了解GeometryReader,ScrollView,NavigationLink,等等。
使用GeometryReader调整图像大小以适合屏幕当我们Image在SwiftUI中创建视图时,它将根据其内容的尺寸自动调整自身大小。因此,如果图片为1000x500,则Image视图也将为1000x500。有时这是你想要的,但是大多数情况下,你将希望以较小的尺寸显示图像,而我想向你展示如何做到这一点,以及如何使用以下方法使图像适合用户的屏幕宽度一种称为的新视图类型GeometryReader。
首先,向你的项目中添加某种图像。没关系,只要它 ...
转载内容 未读
Swift for 循环遍历数组与字典在swift中,最常使用的for循环是for-in结构,并且可以和范围(…和…<)配合使用
本文为转载文章,以下内容来源于
swift for 循环遍历数组与字典
HQ_iOS
123for i in 0..<5 { print(i)}
控制台输出:
1234501234
使用for-in循环遍历数组
1234let array = ["宝马", "奔驰", "奥迪", "兰博基尼", "凯迪拉克", "法拉利"]for arrayItem in array { print(arrayItem)}
控制台输出:
123456宝马奔驰奥迪兰博基尼凯迪拉克法拉利
获取下标的遍历方法:
1234let array = ["宝马", ...
转载内容 未读
如何只使用switch...case来实现一个简单的数值范围划分原文是java的内容,正好用在了Swift上,Good Job!
本文为转载文章,以下内容来源于
如何只使用switch...case来实现一个简单的数值范围划分
csdn
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051import java.io.*;public class tryCase1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int age; BufferedReader br = new BufferedReader(new InputStreamReader(System.in ...
经验分享 未读
Sketch教程:将占用图层替换为组件当我们使用Sketch设计交互稿后,我们可以直接将交互稿中我们用来占位绘制的矩形替换成组件。
创建符号后,可以插入设计中任何现有图层的位置。为此,请右键单击图层,选择“ 替换为”,然后选择“符号”。你选择的符号将调整大小以适合图层的大小。
经验分享 未读
Sketch教程:快速查找组件组件化设计之后我们会有非常多的组件,它们调用起来十分困难,因为寻找他们要耗费大量的时间。
有两种方法可以在Sketch中访问和插入符号。
你可以通过单击“图层列表”顶部的“ 组件”,通过“画布”左侧的“ 组件面板”插入符号(也可以使用Ctrl+1和Ctrl+2分别在“组件面板”和“层列表”之间切换)。
你可以选择查看“所有”可用符号以及仅属于文档或特定库的符号。
你可以使用“组件面板”底部的搜索栏快速找到所需的符号,找到所需的符号后,只需将其直接拖放到画布上即可。按⌘+ ⇧+ F切换到“组件面板”,然后将焦点放在搜索栏上。
另外,你可以通过工具栏或使用插入菜单插入一个符号。在这里,你可以查看并从文档中选择符号或已启用的任何库的符号。
经验分享 未读
Sketch教程:如何显示和隐藏使用组件时的可更换选项在组件化设计的时候,我们会有一个组件嵌套另一个组件。一旦组件过多,在替换时就会发生很难查找的问题。这个方法让我们仅将需要修改的内容进行显示,方便查找。
选择你的组件母版,并使用检查器中“管理替代”面板中每个可用替代旁边的复选框,以选择在设计中的任何位置选择该组件的实例时可用的替代。
经验分享 未读
Sketch教程:如何在替换控件时保持控件尺寸不变有的时候我们在制作的嵌套组件时会调整子组件的尺寸。得益于Sketch是一款矢量设计软件,这个操作可以更加完美的执行。但是在替换控件时如何保持控件尺寸不变呢?
你可以使用“检查器”中“符号”面板中的“组件弹出框”来交换符号。从列表中选择一个符号,或搜索所需的符号,然后单击以将其与当前选定的符号交换。
默认情况下,交换符号会调整你选择的实例的大小以适合其新的符号母版。要在交换符号时使实例大小保持相同,请取消选中“组件弹出框”顶部的“以原始大小交换”选项。
注意:对于Sketch 61和更早的版本,交换符号将始终保持所选实例的大小不变,而不管新Symbol母版的大小如何。
经验分享 未读
SwiftUI 学习笔记 38:项目 7-3 总结那是完成的另一个项目,并且涵盖了大量的Swift和SwiftUI知识。还有更多项目需要涉及,但正如F1赛车手塞巴斯蒂安·维特尔(Sebastian Vettel)所说,“有时你需要按下暂停键,让所有内容沉入其中。”
今天是你暂停一下并让SwiftUI陷入困境的机会。完成审阅,应对挑战,如果需要,可以回到以前的合并日挑战并进行应对。
如此多的人通过电子邮件向我发送诸如“我能以多快的速度学习应用程序开发?”之类的问题。老实说,我为他们感到抱歉。赶时间你不会学。这两个目标与你的大脑不相容。专注学习是当我们通过学习积极地消费信息时,这确实很重要,而分散学习是当我们停止学习并让大脑被动地在已经学习的事物之间建立联系时。休息,睡觉或一段时间做其他事情都是该过程的重要部分。
因此,如果你急于赶上明天的新项目,请遵循维特尔的建议:按一下暂停,让所有内容沉入其中。
挑战最好的学习方法之一是尽可能频繁地编写自己的代码,因此,你应该尝试以下三种方式扩展此应用程序,以确保你完全了解正在发生的事情。
向其中添加“编辑/完成”按钮,ContentView以便用户可以更轻松地删除行。
修改费用金额Con ...
经验分享 未读
SwiftUI 学习笔记 37:项目 7-2 消费记录APP今天,你会使用来构建一个完整的应用程序@ObservedObject,@Published,sheet(),Codable,UserDefaults,等等。我意识到这似乎很多,但我希望你尝试考虑后台发生的所有事情:
@Published 自动发布变更公告。@ObservedObject 监视这些公告并使用该对象刷新所有视图。sheet() 观看我们指定的条件并自动显示或隐藏视图。Codable 可以将Swift对象转换为JSON,然后几乎不需要我们提供任何代码。UserDefaults 可以读取和写入数据,以便我们可以更即时地保存设置。是的,我们需要编写代码以将这些内容放置在适当的位置,但是由于删除了许多样板代码,因此剩下的内容非常出色。正如法国作家和诗人安托万·德·圣艾修伯里(Antoine de Saint-Exupery)曾经说过的那样:“完美无缺,只有在没有更多可添加的东西时才能实现,而只有在没有更多需要补充的时候才能实现。”
项目名:iExpense
建立我们可以从中删除的列表在此项目中,我们需要一个可以显示一些费用的列表,以前,我们将使用@State对象数组来完成此操作。不 ...
经验分享 未读
SwiftUI 学习笔记 36:项目 7-1 概述没有人应该开始进行大型项目。你从一个小的琐碎项目开始,并且永远不要期望它会变大。如果这样做,你只会进行过度设计,并且通常认为它比该阶段可能要重要的多。或更糟糕的是,你所设想的庞大工作量可能会吓到你。
该项目继续更新
与@ObservedObject共享SwiftUI状态@State 只能监控 结构 的更改,很难监控到 类 的更改,这个时候需要使用@ObservedObject
如果你想使用一个类与SwiftUI数据-你会想要做的,如果该数据跨多个视图共享-然后SwiftUI给了我们两个属性包装是有用的:@ObservedObject和@EnvironmentObject。稍后我们将研究环境对象,但现在让我们集中关注观察到的对象。
这是一些创建User类的代码,并在视图中显示用户数据:
1234567891011121314151617class User { var firstName = "Bilbo" var lastName = "Baggins"}struct ContentView: View { ...
经验分享 未读
Sketch教程:在图像填充中四个选项(充满、适合、拉伸、平铺)的区别在Sketch中有四种图像的填充方式:充满、适合、拉伸、平铺。它们代表什么意思呢?
充满图片的最短边等比例中心缩放到图形边缘
适合图片的最长边等比例中心缩放到图形边缘
拉伸图片所有边拉伸到图形边缘
平铺平铺可将图像保持其原始大小,并可以对其进行调整,然后将其平铺以适合图层。
经验分享 未读
Sketch教程:如何批量修改某一种颜色做设计不是很规范的小伙伴颜色可能会有很多很接近的,在做设计规范和标注的时候就会很尴尬,sketch提供了一键批量修改文档中的某个颜色。
从菜单中选择“ 编辑”>“查找和替换颜色”…(或按⌘+ ⌥+调F出“查找和替换颜色”菜单。从此处,选择要在设计中查找的颜色以及要替换为的颜色。
启用“包括该颜色的所有不透明度”以查找具有不同alpha值但RGB或HEX值相同的所有颜色。
启用“保留原始不透明度”以在替换颜色时保持这些不同的Alpha不变。
经验分享 未读
Sketch教程:添加颜色预设值,方便大量使用我们会经常用一些规范中要求的指定颜色。我们不仅可以为他们添加图层样式,还可以创建颜色预设,并且为它们设置名字。
要添加预设,请选择颜色,渐变或图像填充,选择是将其添加到全局(所有文档)还是文档(仅此文档)预设中,然后单击+图标。
要重命名预设,请确保你正在列表视图中查看预设,按住Control键并单击它,然后选择“ 重命名”。你还可以按住Control键单击并选择在全局位置或文档位置之间移动或复制预设。
你可以拖动预设以对其重新排序,或者将其完全拖出彩色弹出框以将其删除(或按住Control键单击并选择Delete)。
最后,当你按住Control键单击纯色预设时,可以选择将其HEX,RGB,HSL,Objective-C或Swift代码颜色值复制到剪贴板。
经验分享 未读
Sketch教程:如何使用快捷键调整渐变的梯度点你可以使用以下快捷方式来调整渐变:
按键
说明
1 – 9
沿着渐变条放置一个新的色点(例如3= 30%)
=
将梯度点平均放置在其他两个点之间
Tab
在色点之间切换
→ 要么 ←
逐渐调整色点位置。
⇧+ →或←
以更大的增量调整色点位置
经验分享 未读
Sketch教程:如何运用模糊在Sketch中提供四种模糊选项:高斯模糊、运动模糊、缩放模糊、背景模糊。
高斯模糊高斯模糊可以在所有方向上应用模糊。你可以使用其滑块设置模糊量。
运动模糊运动模糊在一个方向上模糊表示运动。你可以使用滑块设置模糊量和角度。
缩放模糊缩放模糊将从一个点向外模糊。你可以设置模糊量及其起点。
背景模糊背景模糊可复制macOS和iOS中叠加层和窗格后面的模糊。图层下面的内容将模糊,你可以在检查器中设置该内容的饱和度和模糊量。如果你在此层上有任何填充样式,则它们必须是透明的才能看到这种模糊。透明的颜色填充也是对其进行着色的好方法。
注意:应用大量模糊(或大量模糊)可能会导致Sketch变慢,因为它们需要大量内存和处理能力才能渲染它们。