- 博客(186)
- 收藏
- 关注
原创 通信通知 Communication Notifications 的实现 (iOS 15+)
WWDC 2021 苹果在 iOS 15 系统中对通知做了很多改变, 让通知更加个性化.这里只有讨论通信通知 Communication Notifications, 苹果自带的很多应用, 以及第三方App 飞书, 都使用了这个通知功能。通信通知 Communication Notifications 简介iOS 15系统后, Apple 添加了通信通知的功能。这些通知将包含发送它们的联系人的头像,并且可以与 SiriKit 集成,以便 Siri 可以智能地根据常用联系人提供通信操作的快捷方式和建议
2022-05-15 18:02:34
3674
1
原创 SwiftUI基础 - Image 图片
Image 图片在SwiftUI中, 使用 Image 渲染图片, Image 可以加载 资源包, 系统图标, UIImage 等图片资源.基本用法1.从资源包内加载图片Image("cat")2.加载UIImage图片Image(uiImage: UIImage(named: "dog")!)3.加载苹果的 SF Symbols IconImage(systemName: "cloud.heavyrain.fill") .font(.largeTitle)属性设置内容显示
2022-01-17 22:58:34
6338
原创 SwiftUI基础 - 文本
Text 文本基础使用Text 作为 SwiftUI 中一个基本的控件, 等价于 UIKit 中的 UILabel, 但它可以用更少的代码,实现 UIKit 中对文本的复杂操作。Text("Hello SwiftUI") // 设置文本内容 .lineLimit(3) // 限制行数 .truncationMode(.middle) // 截断方式 .frame(maxWidth: .infinity, alignment: .leading) // 设置大小 .fon
2022-01-17 22:19:32
2263
翻译 Swift - 为您的应用添加黑暗模式 (Dark Mode)
英语原文地址:Dark Mode: Adding support to your app in Swift - SwiftLeeDark Mode在iOS 13中引入,并在WWDC 2019上宣布。它为iOS添加了更暗的主题,并允许您对应用执行相同的操作。这是给用户的绝佳补充,使他们可以在较暗的设计中体验您的应用程序。在此博客文章中,我们将暗模式支持添加到“ WeTransfer收集”应用程序后,我将与您分享我的经验。退出并禁用黑暗模式在我们开始采用Dark界面风格之前,我想简短地告诉您如何选择退出
2020-05-16 21:08:36
2642
翻译 Swift - Typealias 在 Swift 中的用法
英语原文地址:Typealias usage in Swift - SwiftLeeSwift 中的typealias实际上是现有类型的别名。很简单,不是吗?它们可以使您的代码更具可读性。通过以一种聪明的方式使用它们,它们在您的代码库中会非常有用。声明类型别名可以在 Swift 中使用typealias关键字和要分配的类型声明typealias。理解如何使用它们的一个非常简单的示例是为货币(如美元)创建别名。以收据结构的以下示例为例:struct Receipt { let totalC
2020-05-16 12:08:48
614
原创 iOS - 新特性:从键盘上获取手机号和验证码
前提:必须使用系统自带键盘前提:必须使用系统自带键盘前提:必须使用系统自带键盘番外:强制使用系统键盘类型方法在 AppDelegate 里面 UIApplicationDelegate 代理方法中设置func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extension...
2019-04-29 20:08:06
8326
原创 MySQL - 速查&笔记
文章目录什么是数据库?连接数据库数据库操作(DDL)1、创建数据库2、查看当前服务器下的数据库列表3、查看指定数据库的定义4、修改指定数据库的编码方式5、打开指定数据库6、删除指定数据库7、显示当前打开的数据库名称8、查看上一步操作产生的警告信息数据表的的操作1、什么是表?2、如何创建数据表3、查看数据库中的数据表以及表结构4、修改表结构5、如何删除数据表数据的操作(DML)1、插入数据2、更新数...
2019-03-31 21:42:29
982
原创 RxSwift笔记 - RxCocoa 基础 (五) : UITableView + Refresh
TableView 通常要和 Refresh功能结合使用, Refresh 大都从网络获取数据然后进行刷新本文模拟数据请求和表格刷新数据获取, 返回列表数据/// 获取数据func getRandomResult() -> Observable<[SectionModel<String, Int>]> { let items = (0..<5...
2018-09-19 15:10:55
1341
原创 RxSwift笔记 - RxCocoa 基础 (四) : UITableView + RxDataSources
文章目录RxDataSources 介绍单分区 TableView方式一:使用自带的Section方式二:使用自定义的Section多分区的 TableView方式一:使用自带的Section方式二:使用自定义的SectionRxDataSources 介绍RxDataSources Github 地址: RxDataSources官方介绍:UITableView and UIColle...
2018-09-18 20:41:16
3180
原创 RxSwift笔记 - RxCocoa 基础 (三) : UITableView
单个分区的表格var tableView: UITableView!override func viewDidLoad() { super.viewDidLoad() tableView = UITableView(frame: view.bounds, style: .plain) // 注册cell tableView.register(UITa...
2018-08-23 17:44:46
2079
原创 RxSwift笔记 - RxCocoa 基础 (二) : UIGestureRecognizer
UIGestureRecognizerRxCocoa + UIGestureRecognizerlet tapGesture = UITapGestureRecognizer()view.addGestureRecognizer(tapGesture)Tap// 订阅方式实现tapGesture.rx.event.subscribe(onNext: { _ in...
2018-08-22 14:33:31
3367
原创 RxSwift笔记 - RxCocoa 基础 (一)
UILabelUITextFieldUITextViewUIButtonUISliderUIStepperUISwitchUISegmentedControlUILabel文字绑定到 UILabellet label = UILabel()// .../// 值绑定Observable.just("Hello RxSwift") ...
2018-08-21 20:26:09
2959
原创 RxSwift笔记 - Schedulers (调度器)
调度器(Schedulers)调度器(Schedulers)是 RxSwift 实现多线程的核心模块,它主要用于控制任务在哪个线程或队列运行.RxSwift 中的几种 SchedulerCurrentThreadScheduler:表示当前线程 Scheduler。(默认使用这个)MainScheduler:表示主线程。如果我们需要执行一些和 UI 相关的任务,就需要切换到该 Sc...
2018-08-16 20:17:37
1402
原创 RxSwift笔记 - 特征序列 (Single/Completable/Driver)
特征序列 可以看作是 Observable 的另外一个版本。它们之间的区别是:Observable 是能够用于任何上下文环境的通用序列而 特征序列 可以帮助我们更准确的描述序列。同时它们还为我们提供上下文含义、语法糖,让我们能够用更加优雅的方式书写代码Single它不像 Observable 可以发出多个元素,它要么只能发出一个元素,要么产生一个 error 事件。...
2018-08-14 21:21:38
1612
原创 RxSwift笔记 - Mathematical and Aggregate Operators
ConcattoArrayReduceConcat concat 会把多个 Observable 序列合并(串联)为一个 Observable 序列 并且只有当前面一个 Observable 序列发出了 completed 事件,才会开始发送下一个 Observable 序列事件。let subject1 = BehaviorSub...
2018-06-05 17:35:46
456
原创 RxSwift笔记 - Conditional and Boolean Operators
AmbContainsDefaultIfEmptySkipUntilSkipWhileTakeUntilTakeWhileAmb 在多个源 Observables 中, 取第一个发出元素或产生事件的 Observable,然后只发出它的元素let subject1 = PublishSubject&lt;Int&gt;()let s...
2018-06-03 22:56:05
625
原创 RxSwift笔记 - Observable Utility Operators
DelayDoMaterializeDematerializeObserveOnSubscribeOnTimeoutUsingDelay 该操作符会将 Observable 的所有元素都先拖延一段设定好的时间,然后才将它们发送出来Observable.of(1, 2, 1) .delay(3, schedul...
2018-06-03 12:22:53
444
原创 RxSwift笔记 - Error Handling Operators
CatchErrorCatchErrorJustReturnRetryDebugCatchError 从一个错误事件中恢复,将错误事件替换成一个备选序列let sequenceThatFails = PublishSubject&lt;String&gt;()let recoverySequence = PublishSubject&l...
2018-06-02 17:30:06
442
原创 RxSwift笔记 - Combining Observables
CombineLatestMergeStartWithSwitchLatestZipCombineLatest 当两个Observables中的任何一个发射了数据时,使用一个函数结合每个Observable发射的最近数据项,并且基于这个函数的结果发射数据。let first = PublishSubject&lt;String&gt;(...
2018-06-02 17:16:03
764
原创 RxSwift笔记 - Filtering Observables
DebounceSingleDistinctUntilChangedElementAtFilterIgnoreElementsSampleSkipTakeTakeLastDebounce 过滤掉高频产生的元素 debounce 常用在用户输入的时候,不需要每个字母敲进去都发送一个事件,而是稍等一下取最后一个事件。Obs...
2018-05-27 22:14:58
508
原创 RxSwift笔记 - Transforming Observables
mapflatMapflatMapLatestconcatMapscangroupBybufferwindowmap 该操作符通过传入一个函数闭包把原来的 Observable 序列转变为一个新的 Observable 序列Observable.of(1, 3, 5, 7, 9) .map({ $0 * 10 }) .s...
2018-05-27 15:36:50
451
原创 RxSwift笔记 - Creating Observables
create()just()from() / of()repeatElement()generate()deferred()range()interval()timer()empty()error()never()create() 使用一个函数从头创建一个Observable/// 创建可观察对象let id = Obs...
2018-05-24 22:38:29
659
原创 RxSwift笔记 - Subjects
Subjects 同时充当了 Observer 和 Observable 的角色, 既是可被监听的序列也是观察者有许多 UI 控件都存在这种特性,例如UITextField 的当前文本,UISwitch 的开关状态,UISegmentedControl 的选中索引号,UIDatePicker 的选中日期等等。常见的 Subject:AsyncSubjectPublishSub...
2018-05-23 22:06:11
421
原创 RxSwift笔记 - Observer 观察者
AnyObserverBinderBinder 在 RxCocoa 中的应用UIControl + RxUILabel + RxUIView + Rx观察者(Observer)介绍 观察者(Observer)的作用就是监听事件,然后对这个事件做出响应。或者说任何响应事件的行为都是观察者常见观察者AnyObserver - 任意一种观察者...
2018-05-22 21:52:01
1146
原创 RxSwift笔记 - Observable 可观察序列
Observable - 可被监听的序列Observable 的生命周期Event 事件特征序列SingleCompletableMaybeDriverControlEventObservable - 可被监听的序列Observable 用于描述元素异步产生的序列Observable 这个类是 Rx 框架的核心,我们可以称它为可观察序列。...
2018-05-17 16:27:17
1315
原创 RxSwift笔记 - 函数响应式编程
常见编程模式函数式编程 - Functional Programming响应式编程 - Reactive Programming函数响应式编程 - Functional Reactive Programming函数式编程 - Functional Programming 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数。我...
2018-05-16 16:45:24
538
原创 RxSwift笔记 - 学习资源分享
[特此申明】:以下资源摘自多位优秀博主文章,其联系已指出在次感谢各位前辈给 Rx 爱好者铺路,谢谢!书籍RxSwift - By Raywenderlich GitBookRxSwift 中文文档 - By Beeth0venReactiveX文档中文翻译 - By Mcxiaoke 视频从零开始RxSwift探险实战视频课程 - By 李勇Lea...
2018-05-15 09:50:55
1775
原创 RxSwift笔记 - 简单介绍
RxSwiftRxSwift 是 ReactiveX 家族的重要一员, ReactiveX 是 Reactive Extensions 的缩写,一般简写为Rx。ReactiveX 官方给Rx的定义是,Rx是一个使用可观察数据流进行异步编程的编程接口。ReactiveX结合了观察者模式、迭代器模式和函数式编程的精华。ReactiveX 不仅仅是一个编程接口,它是一种编程思想的突破,它...
2018-05-13 22:03:48
1471
原创 iOS - 常用 Animations 动画总结
动画在软件开发中用的非常频繁,没有动画的软件,就类似于僵尸;所以对 iOS 常用的动画进行归纳总结,参考官方文档以及 UIView 和 QuartzCore 文档,受益颇多UIViewAnimationUIView 一般形式动画UIView 闭包式动画基础动画关键帧动画转场动画Core Animation 核心动画 基于 CALayer 层级的动画CAAnimati
2018-01-10 16:45:55
3025
1
原创 [Python] - 爬虫之抓取 Boss直聘 数据到 Excel 中
声明:此博客爬取的数据只为学习爬虫使用,绝非广告程序介绍文件目录├── Zhipin_spider # 文件夹│ ├── spider_main.py # 调度器。是爬虫的入口,管理各个类│ ├── html_downloader.py # 下载器,负责网页内容的下载│ ├── html_parser.py # 解析器,负责解析数据,获取有价值的数据
2018-01-07 17:47:27
6992
原创 [Python] - 爬虫之 Selenium 的使用
Selenium 介绍安装安装 SeleniumMac OS 系统安装浏览器驱动器 Drivers快速入门简单尝试使用 Selenium 写测试案例页面操作和网页交互填充表单拖放弹出对话框导航历史和位置Cookies元素查找总体概述通过 ID 查找通过 Name 查找通过 XPath 查找username 查找方法Clear 按钮查找通过链
2018-01-06 18:14:44
1165
原创 iOS - 控制器自定义动画跳转 [导航跳转]
参考资料:Apple 开发文档 Customizing the Transition AnimationsWWDC 2013 Custom Transitions Using View Controllers图例:跳转的动画有很多,全部可以自定义创建自定义转换你必须遵循三个步骤:1、创建一个类,并实现了 UIViewControllerAnimatedTransitioning 协议2、创建一个
2018-01-04 15:12:43
1673
原创 iOS - 控制器自定义动画跳转 [模态跳转]
参考资料:Apple 开发文档 Customizing the Transition AnimationsWWDC 2013 Custom Transitions Using View Controllers图例:跳转的动画有很多,全部可以自定义创建自定义跳转必须遵循的三个步骤:1、创建一个类,并实现了 UIViewControllerAnimatedTransitioning 协议2、创建一个
2018-01-04 11:39:53
804
原创 [Python] - 爬虫之Beautiful Soup的基本使用
Beautiful Soup的简介Beautiful Soup 是一个可以从HTML 或 XML 文件中提取数据的 Python 库,最主要的功能是从网页抓取数据官方解释如下: Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
2017-12-24 16:36:50
957
原创 [Python] - 爬虫之Requests基本使用
Requests 是一个非常强大的 HTTP 请求库,基于 urllib,使网络请求变的非常简洁 官方文档Requests 官方文档安装利用 pip 安装 $ pip3 install requests利用 easy_install easy_install requests初步尝试首先我们引入一个小例子来感受一下import requestsr = requests.get("htt
2017-12-22 17:05:58
848
原创 [Python] - 爬虫之Urllib库的基本使用
1.获取一个网页HTML内容一个网页,实质上就是一段HTML代码,加 JS、CSS,如果把网页比作一个人,那么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服。所以最重要的部分是存在于HTML中的,下面我们就写个例子来获取一个网页下来。# 引入 urllib request 模块import urllib.request# 直接请求网页response = urllib.reques
2017-12-21 14:39:39
2632
原创 [Python] - 爬虫之lxml库的用法
`lxml` 用法源自 `lxml python` 官方文档,更多内容请直接参阅官方文档[lxml 官方文档](http://lxml.de/index.html)
2017-12-18 17:47:20
14952
原创 [Python] - 爬虫之简介和基本原理
爬虫简介爬虫,即网络爬虫,可理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到资源,那么它就会抓取下来。一句话形容爬虫:一段自定抓取互联网信息的程序爬虫的作用取互联网数据,为我所用!简单爬虫架构运行流程URL管理器URL简单介绍 URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示
2017-12-18 15:18:37
1291
原创 XPath - 基础学习
XPath 是一门在 XML 文档中查找信息的语言。 XPath 用于在 XML 文档中通过元素和属性进行导航。什么是 XPath?XPath 使用路径表达式在 XML 文档中进行导航XPath 包含一个标准函数库XPath 是 XSLT 中的主要元素XPath 是一个 W3C 标准XPath 于 1999 年 11 月 16 日 成为 W3C 标准
2017-12-16 18:42:53
567
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人