我做了一个演讲,使用iPad应用程序参加了公司的野餐! 先进的斯威夫特 我在Chris Eidhof先生的Advanced Swift上做了30分钟的演讲。 我学到了很多关于Swift语言功能的知识,甚至还了解了诸如for循环之类的东西在引擎盖下如何实际工作的知识。 我写了大约八页的笔记,并创建了一个幻灯片,其中包含28张幻灯片以准备演示文稿。 我在iOS部门公司会议上作了介绍。 在演讲过程中,我很高兴意识到书中有些东西甚至连高级的iOS工程师都不知道,因为没人知道那里的一切,这没关系! 在演讲开始的那几天,我非常紧张,最终进展顺利。 除了在第一张幻灯片中我列出了错误的作者之外……–我只是在检查大家是否都在注意😅LOL jk。 事后看来,将演示文稿摆在其他演示文稿之前,以在真正的演示文稿之前捕获此类错误是一个好主意。 在iPad应用程序上工作 在本周之前,我之前从未从事过iPad应用程序的开发,因此有机会获得如此激动! 我注意到的唯一非常明显的区别是,iPad的屏幕尺寸显然比iPhone😂大。 当我使用iPad模拟器运行该应用程序时,它比实际的iPad设备要慢得多。 请务必注意这一点,因为该应用程序的某些错误在模拟器中并不明显,而在iPad设备上则显而易见。 —始终在设备上测试应用程序。 这是我本周了解到的一些信息: UIVisualEffectView UIVisualEffectView是用于创建模糊效果的对象。 上面的图片是一个模态UIView,在UIView上带有ImageView。 请注意x按钮旁边的模糊程度如何变暗,这是因为此模式UIView后面有一个深色的菜单栏。 首先创建一个具有模糊效果的UIView。 使用阴影实现灰色模糊效果 如果您查看此blurView,它具有灰色。 它是blurView后面的白色。 应该是白色的吧? 那么这是怎么发生的呢? 无法为此模糊效果设置颜色。 这是通过将阴影添加到模态呈现的UIView并将阴影半径设置为一直延伸到屏幕边缘来实现的。 动画阴影看起来要平滑得多。 公司野餐 Fuzz的野餐是在前景公园。 很高兴认识该公司更多的人,并通过热狗,汉堡和饮料与他们聊天。 我很高兴Fuzz拥有如此轻松的活动,使我能够在轻松的环境中与同事保持联系。 据预测,雷雨将在八点开始暴风雨,但它来得有点早,所以我们都去了附近的酒吧。 这是结束一周的愉快方式。 再见第五周,第六周你好!
我深入研究了Chris Eidhof的“ Advanced Swift”,Ray Wenderlich团队的“ RxSwift”,并开始在我的第一个大型应用程序屏幕上工作。 Advanced Swift使我对Swift语言的工作方式有了更好的了解。 例如,您可以遍历数组和字典的原因不是因为它们是数组和字典。 因为数组和字典符合Sequence协议,所以可以迭代数组和字典。 序列 -一系列相同类型的值,可让您遍历这些值 遍历序列的最常见方法是for循环 为了符合序列协议,请提供一个返回迭代器的makeIterator()方法 为了符合序列协议,必须实现返回迭代器的makeIterator方法。 迭代器-一次生成序列的值,并在遍历序列时跟踪其迭代状态(for循环) 当然,迭代器必须符合迭代器协议。
前iOS主管一直给我留下的一句话是始终追求卓越。 我本周每天醒来,在上班途中考虑这一点。 这周,我开始研究项目的一些屏幕和错误修复。 这是第二周我学到的一些东西: 一致的约束插入量/偏移量-使用一致的约束插入量和偏移量时,最好将它们包含在结构中,这样约束中就不会乱扔随机数。 例: 我得到的数据具有枚举类型,且其关联值均为“ asap”或Date类型,两者均为关联值。 我必须从数据中获取日期,但我一生都无法弄清楚。 访问没有关联值的枚举的通常方法是使用(.dotNotation)。 这对我不起作用,因为这不是您访问枚举的关联值的方式(请坚持这种想法)。 这导致我尝试了一些复杂的整理方法,将数据转换为字符串,结果是: 字符串“ date(“ 2018–07–07 11:00:00 +0000”)” 然后使用.dropFirst()和.dropLast()的字符串处理方法删除“ date()”部分,最终导致 字符串“ 2018–07–07 11:00:00 +0000” 但是由于某种原因,我尝试使用Date方法将此字符串转换为不起作用的日期….. 这是我终于向经理寻求帮助的时候。 他确认我的最初直觉是正确的, 我应该通过数据枚举的关联值来访问日期! ;-; tldr:有两种方法时: 一种简单的方法应该可以工作,但您无法弄清楚或 一个漫长而复杂的方法,这可能是您应该获得帮助的时候,因为这是浪费开发人员时间的方式。 如果我刚刚问这个问题,我可能会节省很多时间,这将花费一分钟使我走上正确的道路。 学过的知识! 无论如何,这是如何访问枚举的关联值: 通过打开枚举 通过大小写访问关联的值 3. 如何从Date()中完全拼出月份和月份的顺序日期 例如:日期(2018–07–07 11:00:00 +0000)—> 2018年7月7日 据我所知,Apple没有提供给您拼写出月份和顺序日期的方法。 所以这就是我的做法: 你这周学到了什么?
第四周过去了,这是我本周所做的事情〜 我第一次自己解决了合并冲突和合并分支的问题,这真是令人兴奋! 我还了解了如何合并UIView,动态标签创建以及有关相互依赖的约束的更多信息。 整合UIViews 当构建一个包含多个UIView的复杂屏幕时,请考虑是否可以重用这些UIView中的任何一个,而不是创建两个具有几乎相同代码的独立UIView文件。 例如,“添加付款方式”和“添加促销代码”是ScrollView中ContentView内部的两个UIView。 它们最初几乎完全相同,但是在用户交互后会更改。 这两个UIView可以合并为一个可重用的UIView,而不是拥有两个UIView文件。 在ReusableView中,枚举用于控制两个视图中的差异标签/差异行为。 动态标签创建 我认为基于传入的数据动态创建的文本标签是有史以来最酷的事情! 这是从一个自定义UITableViewCell创建的UITableView中的两行。 成分选项标签是stackView中的标签。 请注意,第二行没有选择自定义成分选项,因此不会生成标签。 这些自定义成分标签是在更新单元格功能内部生成的。 约束条件 如果您的元素将始终在同一位置对齐,则最好将这些元素彼此约束而不是独立约束。 即:productLabel的顶部约束和priceLabel的顶部约束应等于quantityLabel的顶部约束。 这样,如果顶部约束需要稍微偏移一点,则只需要更改quantityLabel的顶部约束,因为另一个标签的约束已经依赖于该约束。 我在本周使用的一些超级有用的git命令: 1.恢复为先前提交 查看以前提交的哈希 git日志 获得正确的提交哈希后,您想还原为: git reset –hard hashOfCommitYouWantToRevertTo 2.合并分支 首先确保您在要合并INTO的分支上 git checkout branchYouWantToMergeInto 然后确保您在正确的分支上 git merge branchYouWantToMergeIn 这应导致: 3.合并冲突 合并冲突文件路径将在终端中显示 我喜欢使用Sublime修复pbx proj文件上的合并冲突 subl pathOfPbxProj 修复Sublime文本编辑器中的pbx proj冲突 退出Xcode 使用以下终端命令打开工作区: 打开* xcw * 修复工作区中的其他合并冲突 第四周就这样了! 😊