主页
Liu's Den
Cancel

在 SwiftUI 中提供了一个裁剪视图形状的修饰符:clipShape,他可以将 View 以你自定义的任何 Shape 的形状进行裁剪。 例如我们有一个收藏按钮,可以使用 clipShape 将按钮按照 Circle、Capsule 的形状进行裁剪 /// 圆形按钮 Button(action: {}) { Image(systemName: "star") ...

在iOS程序中创建美观的股票图表 SwiftUI 框架在 2019 年的 WWDC 大会引入后,广受 iOS 社区欢迎。这种用 Swift 语言编写,易用的、声明式的 API 让开发者可以快速构建 UI 原型。 虽然我们能用 Shapes 协议从头开始构建 条形图,但是构建折线图就不一样了。幸运的是,我们有 Paths 这个结构体来帮助我们。 使用 SwiftUI 中的 pa...

通常我们在列表 UITableView 或者 UICollectionView 中点击 Cell 来 Push 到一个新的页面会使用对应的代理方法 didSelectRowAt,然而在 SwiftUI 中没有对应的代理属性,也没有类似的可以 push 的API,那么如何在 SwiftUI 中 push 一个 View 呢?那就是使用 NavigationLink。 在 SwiftUI 中 ...

我们热爱动画。 一方面,它们引导我们的视线,同时也是画龙点睛的一笔,增添了额外的关注点甚至一点 感情。比起静态的 UI,我们更偏爱生动形象并且能给我们反馈,可以交互的 UI。但是太多了就会造成不良的后果,所以让我们来探索一些可以给一款 app 增加恰到好处的润色的动画。 在 touchDown 时改变一个按钮的大小或颜色 我们通常在 touchUpInside 上设置点击事件,其原...

之前在UIKit中实现了这样的动画。 Github源码 通常可以在层上使用CoreAnimation,我想知道这在SwiftUI中会如何实现。 动画是SwiftUI中对我来说不容易实现的功能之一! 动画修饰符 (AnimatableModifier) 我选择将效果实现为 AnimatableModifier。该协议既继承自Animatable又继承于ViewModifier,因此我...

您好,Swift 开发者,在本文中,我想与您分享我的经验和知识,主要内容有属性包装器(Property Wrapper)的使用,以及如何简化代码并使其易于维护。我会通过几个主题对此进行说明。 在 Swift 5.1 中,Apple 引入了属性包装器,它可以让我们在属性和访问逻辑(getter 和 setter)之间设置中间层。 下面的内容是在 @IBOutlet 变量内部使用属性包装...

SwiftUI 中提供了很多“新颖”的 API 设计思路和 Swift 的使用方式,我们可以进行借鉴,并反过来使用到普通的 Swift 代码中。PreferenceKey 的处理方式就是其中之一:它通过 protocol 的方式,为子 view 们提供了一套模式,让它们能将自定义值以类型安全的方式,向上传到父 view 去。如果有机会,我会再专门介绍 PreferenceKey,但这种设计的...

在本文中,我将介绍 iOS 编程中的 MVVM 设计模式以及 RxSwift。本文分为两部分,第一部分简要介绍了设计模式和 RxSwift 的基础知识,而在 第二部分 里,有一个实现了 MVVM 和 RxSwift 的示例项目。 设计模式: 首先,我们为什么要使用设计模式呢?简而言之,就是为了避免我们的代码乱成一团,当然这不是唯一的原因,其中有一个原因是可测试性。设计模式有很多,...

今天我们将使用 RxSwift 实现 MVVM 设计模式。对于那些刚接触 RxSwift 的人,我 在这里 专门做了一个部分来介绍。 如果你认为 RxSwift 很难或令人十分困惑,请不要担心。它一开始看上去似乎很难,但通过实例和实践,就会将变得简单易懂👍。 在使用 RxSwift 实现 MVVM 设计模式时,我们将在实际项目中检验此方案的所有优点。我们将开发一个简单的应用程序,...

本文描述了如何通过 Python Flask REST API 向外界暴露机器学习模型。 Flask 正如其官方网站所述,充满乐趣且易于安装。确实,这个 Python 的微框架提供了一种使用 REST 端点注释 Python 函数的有效方式。目前我使用 Flask 发布机器学习模型 API,以供第三方业务应用程序访问。 此示例基于 XGBoost。 为了更佳的代码维护性,我...