在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
认识Bond和ReactiveKit移动应用程序消费者在浏览应用程序时提高了他们的期望标准。 如今,每个人都希望看到平滑的过渡,完美的像素应用程序和更少的步骤。 即使是很小的视觉干扰,也会使用户删除您的应用程序。 换句话说, 您的应用必须完美 。 您如何处理数据更改?还有另一件事,那就是您如何处理UI的数据更改 。 我遇到了大量处理数据更改的应用程序。 例如,您要刷新表视图内容,然后突然整个内容消失了,并在2-3秒后重新出现。 在大多数情况下,您将获得与“拉动刷新”之前相同的结果,因此什么都没有真正改变。 听起来很熟悉? 让我们避免这种情况,并通过使用绑定和反应性数据源正确处理数据更改。 ???? 反应式编程 对于不熟悉该术语的人来说,反应式编程是一种异步编程范例,它涉及数据流和变化的传播。 例如,对模型的所有更改将自动反映在关联的视图中。 ???? 绑定绑定Bond是一个Swift绑定框架,它将绑定概念提升到了一个全新的水平。 它像Swift一样简单,强大,类型安全且具有多种范例。 它通过使用绑定和反应性数据源来简化状态更改。 该库是我一直以来的最爱。 您可以将其附加到所需的任何组件上。 我将通过几个示例向您展示如何使用Bond,以便您了解其工作原理。 安装 对于安装,我正在使用CocoaPods 。 我强烈建议您也这样做。 只需在您的Podfile中添加以下代码,然后运行 target 'YOUR_TARGET' do use_frameworks! pod 'Bond', '~> 6.4.3' end 从撰写本文之日起,我就在使用最新版本的框架。 有关版本更改,请 在此处 检查 。 将 使用Swift 4的iOS版Google Maps SDK-The App Space
许多iOS应用程序都使用Google Maps。 这是一个非常常见的功能,因此我决定在Google上准备最终指南... theappspace.com 大事记 我将首先向您展示如何摆脱 _ = yourButton.reactive.tap.observeNext { print("Button tapped.") } 这将观察您的按钮点击。 它监听 yourButton.reactive.controlEvents(.touchUpInside).observeNext { e in 另一个示例是观察 _ = yourTextField.reactive.text.observeNext { text in 现在,让我向您展示将输入的文本简单绑定到 yourTextField.reactive.text.map{ $0?.capitalized }.bind(to: yourLabel) 或者,您可以使用上面的示例,但提供一个条件。 假设您需要在某人在文本字段中键入内容时更改按钮的启用状态。 txtField.reactive.text.map { $0!.characters.count != 0 }.bind(to: yourButton.reactive.isEnabled) 可观察的 可观察到的是ReactiveKit let animal = Observable("Dog") animal.observeNext { value in 如果从示例中可以看到,只要可观察动物的值发生变化,就会触发一个观察者。 要更改该值,只需调用 Bond还通过使用 animal.bidirectionalBind(to: animalTextField.reactive.text) 使用Swift进行Instagram API身份验证-The App Space
本教程是关于使用Swift进行Instagram API身份验证的,将教您如何检索ACCESS_TOKEN… theappspace.com 反应性数据源 通过使用反应性数据源,它使我们可以轻松地观察表或集合视图中的更改。 这意味着只要数组发生更改,数据源方法就会自动更新。 无需在每次更改数组时都添加 我们需要使用 let array = MutableObservableArray([“John”,”Michael”,”Steven”]) 现在,我将向您介绍实现表视图的数据源有多么容易和简短。 您不需要将UITableViewDataSource与表视图连接,因为Bond为我们处理了该操作。 强制的 array.bind(to: tableView, animated: true) { dataSource, indexPath, tableView in let cell = UITableViewCell(style: .subtitle, reuseIdentifier: “cell”) cell.textLabel?.text = dataSource[indexPath.row] return cell } 现在,假设需要更新数组。 在这一点上,我们只需要关注array ,而忽略表视图以及它是否将要更新。 以下是一些可用于更改数组的方法。 array.append("Brad") /* appends array with a new object */ array.insert("Brad", at: 2) /* inserts new object at the given index */ array.replace(with: [“John”,"Brad",”Michael”,”Steven”], performDiff: true) /* replaces the array but updates only rows that weren't present in the previous array (in our case index 1) */ array.moveItem(from: 1, to: 2) /* items in array will change places */ array.remove(at: 2) /* removes an item from the array */ array[1] = "David" /* replaces the value at the given index */ 通过正确使用这些方法,我们可以提供最佳的用户体验。 数据将被更新,并且用户不会以任何方式分心。 我仅介绍了Bond提供的许多功能中的几个。 绑定和响应式范例可以使您的应用程序更上一层楼,因此我强烈建议您使用这种方法。 如果您想传播信息,请不要忘记to或分享这个故事。感谢您的关注! ????查看我最新的项目:阅读我在Medium上撰写的更多文章: 使用Swift 4的iOS版Google Maps SDK终极指南
许多iOS应用程序都使用Google Maps。 这是一个非常常见的功能,因此我决定在... medium.freecodecamp.org 上准备最终指南。 订阅我的时事通讯:From: https://hackernoon.com/bindings-and-reactive-data-sources-in-swift-ee1208f882c9 |
请发表评论