Tag: Swif

注意杯子

几周前,我去了Google。 Google在苏黎世设有出色的办公室,我认为让他们组织一次技术聚会对于从内部看到它们确实是一个很好的机会。 这是美好而有趣的一天,我很高兴在一个非常友好的环境中遇到好人。 一如往常,在访问大公司时,他们给了我们一些商品。 这次,我们得到了一个带贴纸的袋子,一些电话配件和……杯子! 上周五早上我在家,我想“现在是在新杯子里喝咖啡的好时机” 所以我在杯子里装了些牛奶,然后放入微波炉中。 两分钟后,我从微波炉中取出杯子,手烧了。 像我将手伸到撒但的烟囱上一样燃烧。 杯子的把手很热,太热了…… 那时,我注意到杯子实际上是金属的,并且由于其形状,其手柄形成了一个电磁拱。 这是一个天线,它接收了微波内部两分钟内的所有微波。 最后,牛奶很冷,可能比以前更冷,并且一天余下的时间我的手都非常疼痛。 我意识到……实际上这并不是我第一次遇到这种情况。 实际上,这是一个非常熟悉的场景。 大公司,不仅是Google,都会免费为您提供很多东西,不仅免费提供杯具,还为您提供框架和工具:React Native,Realm等… 它们都是免费的,一开始看起来很酷。 您可能会像我收到杯赛时一样快乐。 但是下次,请注意杯子… 杯子实际上是一个很棒的杯子,我现在用它来喝冷液体🍻。 问题实际上不是杯子,而是在检查它是否为金属之前使用它,因此它不是喝咖啡的好杯子。 框架和工具也可能发生同样的情况。 在适当的情况下使用React Native,Realm等……它们都是很好的工具,但同时如果不使用它们,则真的很痛苦。 结论 注意杯子 如有任何疑问,请随时在github,twitter或dcordero.me上关注我。

使用RxSwift切换组件

拨动开关列表在移动世界中广泛存在。 我在我使用的大多数应用程序的“设置”屏幕中找到它。 对我来说, 打开和关闭事物并将其保存在某个地方的简单动作隐藏了我将要揭示的有趣的复杂性。 在本文中,我将使用RxSwift构建“切换列表”屏幕。 我将使用上一篇有关自动完成的文章中介绍的技术。 我们将创建Toggle组件-一个带有输入和输出要插入的黑盒子。 阅读此书后,您将可以在项目中使用它来建立自己的切换体验。 切换 首先,了解我们将要积累的经验。 请注意,在将其状态发送到服务器时,单次切换处于禁用状态,有时它会摇动并退回到先前的状态-发生保存错误时: 在Swift中也一样: 并提供用于使用Toggle配置单个UISwitch支架: 现在,将在setUp(settingSwitch:with toggle:)完成输出编排。 它以settingSwitch和toggle作为参数。 在上面的视频中,对UISwitch进行了三种修改: settingSwitch.isOn属性使用切换初始值设置,以后可以使用切换后备值强制更改; settingSwitch.isEnabled已更改为Toggle活动; 播放settingsSwitch.shake()动画以切换回退值 。 第一个修改是由initialValue和fallbackValue流合并到单个switchValue流中定义的: switchValue流驱动rx.isOn属性。 虽然.flatMap { $0.map(Driver.just) ?? Driver.empty() } .flatMap { $0.map(Driver.just) ?? Driver.empty() }可能看起来很神秘,它只有在不为nil时才发出值。 如果使用RxSwiftExt库,则等于.unwrap() 。 为了提高代码的可读性,我们使用ToggleValue扩展的以下三个便捷属性: 第二个突变很简单: 否定isBusy输出以驱动器settingSwitch.rx.isEnabled 。 当fallbackValue出现在fallbackValue流上时,第三个突变播放.shake()动画: 我们不在乎fallbackValue发出的值,因此我们将其映射到void () 。 最后,通过UISwitch的此扩展来制作shake()动画: 值得注意的是, Toggle组件并不限制我们构建这种类型的UX。 某些应用会在服务器上保存设置时阻塞整个屏幕。 只需将多个isBusy输出合并到单个isLockViewVisible流中,即可使用Toggle轻松完成。 单元测试 因为唯一的Toggle’s依赖项是ToggleStorage ,它是一个协议,所以创建MockToggleStorage并完全测试Toggle非常容易。 一个很好的例子是该测试确保在用户输入后发出更新值。 我们使用帮助程序recordedValues数组存储value输出发出的所有值。 […]

键盘地狱

许多iOS开发人员遇到了很多麻烦:Keyboard HELL。 iOS和键盘并不是那么简单。 它并不总是容易实现和推理。 这就是为什么我以NSLayoutConstraint的形式创建了一个助手。 NSLayoutConstraint应该放在(滚动/表)视图和根目录的底部之间。 该距离通常为0.0像素,但是您可以设置偏移量。 键盘弹起时,约束将计算差异并自动偏移(滚动/表格)视图,因此键盘不会覆盖该视图。 约束是插图上的←— —→。 如您所见,边缘与按钮之间的距离与键盘与按钮之间的距离(如图所示)相同。 固定可以简单地完成: 您可以在此处下载NYSKeyboardHelper: 让我知道您是否使用过此功能,或者如果您认为这很有趣,请加星标。 我将在这里继续提供更新。 如果您喜欢这篇文章并需要我的帮助? 不要犹豫访问我的网站和/或通过Twitter与我联系

在iOS#2中列出适配器

我的上一篇文章提出了基础知识。 您可以在此处找到源代码。 带多个电池的适配器 以前,我们为一个单元创建了演示者,但是适配器并不仅限于一个单元。 因此,我们可以更清楚地更改CellPresenter的名称: 资源 sayler8182 / Adapter2 通过在GitHub上创建一个帐户来为sayler8182 / Adapter2开发做出贡献。 github.com [第1部分] 感谢您的阅读! 如果您喜欢这篇文章,请鼓掌,以便其他人也可以阅读。 下一篇文章我也会有更多动力。🙂您还可以查看其他文章,也许您会找到适合您的东西。 如果您有任何问题或建议,请发表评论。

RxSwift#3 —运算符

运算符运算符。 操作员可观察到벤트들을이준처리할준다준다。 가볍게运营商가무엇인지살펴보면서보시작해 操作员Rx는기본이다。 运算符사용해Observable벤트를벤트를벤트를리하여있다。 运营商는로그룹으다 过滤算子 转换运算符 合并运算符 过滤运算符.next随即添加。 。过滤 벤트만이벤트만다 .distinctUntilChanged 값이이어질막아준다 可观察的변형하는运算符 。地图() 이벤트를다른이벤트로변형 可观察的Swift map 같다。 .scan() 있고가지있고있고있고벤트를있있다。。 벤트이벤트의원본이벤트다 초기값을지정해야다 룬다룬运算符들을제를를보살펴 筛选器용해文字n아닐져온져온져온져온 节流阀사용해0.5장장장이최신사용한다 文字를SearchRequest로변환한다 이데식으흐름터를터를터를있습니있습니다있습니。 [4장:RxSwift용한이용한MVVM패턴] RxSwift#4 — RxSwift용한이VM MVVM패턴 在MVVM和RxSwift中进行比较。 medium.com

迅捷4.2’de Neler Yeni

4.2sürümüSwift 4 serisinin 4.0 ve 4.1 den sonraki ikincigüncellemesidir。 Swift 4.2’de neler yeni inceleyelim。 BaslamadanönceSwift 4.2版本Xcode 10已发布。 枚举案例的派生集合: Yeni bir CaseIterable protokoltanıtıldı; bu,varsayılanolarak bir enumdakitümdurumlarınbir diziözelliğinioluşturur。 Sadece CaseIterable protokoleuymalıyız,tumenum’ındurumlarınınbir dizisi olan bir allCasesözelliğioluşturacaktır。 allCase lerin otomatik sentezi,sadeceilişkilideğerlerikullanmayan枚举içinyeralacaktır。 Ancak,gerekirse kendimizi ekleyebiliriz。 Yeni DerleyiciYönergeleri: 斯威夫特4.2歌词derlemesırasındaözelbiruyarıya da hata vermesini istersen #warning ve #erroryönergelerinikullanabilirsin ·#warning,bazıçalışmalarıneksikolduğukendinize veyabaşkalarınabirhatırlatmaolarak eklemeye yarar。 下摆#warning […]

如何在iOS多任务切换器中模糊应用程序屏幕

因此,您发现自己在具有严格隐私要求的应用程序上工作。 在处理了诸如两因素身份验证或Face ID之类的所有重大问题之后,仍然需要做一些改进。 看看您的应用在Multitasking Switcher中的外观如何? 最好在多任务切换器中模糊应用程序的屏幕,这样可能的作案者将无法看到有价值的用户信息。 而且它使您的应用程序看起来更周到,并且无疑为您的业力增加了一些要点。 首先,我将简要介绍一下iOS应用程序的生命周期,然后您将了解如何实现模糊效果。 而且不要介意封面,我通常会对自己的跑步成绩感到尴尬! iOS应用生命周期 在任何给定时刻,您的应用都可以处于以下状态之一: 未运行 , 非活动 , 活动 , 后台 , 已暂停 。 看下图。 当用户切换到多任务处理时,该应用程序处于后台模式。 当用户从多任务处理或主屏幕中选择应用程序时,它首先进入非活动状态 ,然后进入活动模式。 每个iOS应用的核心是UIApplication对象。 它为我们提供了处理生命周期事件的方法。 现在让我们看看如何实现模糊效果。 iOS让我们将高斯模糊效果应用于UIImage实例。 我们要做的第一件事是在应用程序屏幕进入后台之前对其进行截图: 这是一种应用模糊效果的方法: 在最后一步,我们将模糊的图像添加到窗口中。 每当我们的应用进入活动状态时,我们还需要能够将其从窗口中删除。 因此,我们将使用一些随机数标记 UIImageView : 仅此而已! 如果您喜欢这篇文章,请不要忘记喜欢并关注它!