自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

╰つ栺尖篴夢ゞ

少一点问别人为什么,多一点问自己凭什么!!*(^^)*

  • 博客(72)
  • 资源 (66)
  • 问答 (3)
  • 收藏
  • 关注

原创 Swift之Codable自定义解析将任意数据类型解析为想要的类型

一、前言大多数现代应用程序的共同点是,它们需要对各种形式的数据进行编码或解码。无论是通过网络下载的 Json 数据,还是存储在本地的模型的某种形式的序列化表示形式,对于几乎任何 Swift 代码库而言,能够可靠地编码和解码不同的数据都是必不可少的。这就是为什么 Swift 的 Codable API 能成为 Swift 4.0 的新功能一部分时,具有如此重要的重要原因。从那时起,它已发展成为一种标准的,健壮的机制,可以在 Apple 的各种平台中使用编码和解码包括服务器端 Swift。Codable

2021-10-24 14:54:56 58514 95

原创 RxSwift之UI控件UITextField与UITextView扩展的使用

一、监听单个 textField 内容的变化(textView 同理)将 textField 里输入的内容实时地显示到控制台中,示例代码:// 创建文本输入框let textField = UITextField(frame: CGRect(x:10, y:80, width:200, height:30))textField.borderStyle = UITextField.BorderStyle.roundedRectself.view.addSubview(textField) /

2021-10-31 20:16:03 2679

原创 RxSwift之UI控件Label扩展的使用

一、将数据绑定到 text 属性上(普通文本)当程序启动时就开始计时,同时将已过去的时间格式化后显示在 label 标签上:// 创建文本标签let label = UILabel(frame:CGRect(x:20, y:40, width:300, height:100))self.view.addSubview(label) // 创建一个计时器(每0.1秒发送一个索引数)let timer = Observable<Int>.interval(0.1, schedule

2021-10-31 16:19:59 676

原创 【数据结构与算法】之深入解析“汉诺塔问题”的求解思路与算法示例

一、题目描述有 A,B,C 三根柱子,A 上面有 n 个盘子,想把 A 上面的盘子移动到 C 上,但是要满足以下三个条件:每次只能移动一个盘子;盘子只能从柱子顶端滑出移到下一根柱子;盘子只能叠在比它大的盘子上。请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。需要原地修改栈。示例 1:输入:A = [2, 1, 0], B = [], C = []输出:C = [2, 1, 0]示例 2:输入:A = [1, 0], B = [], C =

2021-10-28 20:50:18 938 4

原创 【数据结构与算法】之深入解析“N个数全排列”的求解思路与算法示例

一、全排列 I① 题目描述给定一个不含重复数字,数组长度为 N 的数组 nums ,返回其所有可能的全排列,可以按任意顺序返回结果。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]② 算法分析采用分治法把大问题分解成很多的子问题。大问题是所

2021-10-28 20:24:36 1264

原创 RxSwift之深入解析Subject的使用和实现原理

一、SubjectRxSwift 的核心逻辑 Observable 不具备发送事件的能力,创建一个 Observable 的时候就要预先将要发出的数据都准备好,等到有人订阅它时再将数据通过 Event 发出去。但有时希望 Observable 在运行时能动态地获得或者说产生一个新的数据,再通过 Event 发送出去。比如,订阅一个输入框的输入内容,当用户每输入一个字符之后,输入框关联的 Observable 就会发出一个带有输入内容的 Event,通知给所有订阅者。为此,RxSwift 提供了一种可以发

2021-10-27 20:18:15 885 2

原创 RxSwift之深入解析map操作符的底层实现

一、map 操作符的使用map 操作符将源 Observable 的每个元素转换一遍,然后返回含有转换结果的 Observable:现有如下示例:Observable<Int>.of(1,2,3,4,5,6) .subscribe(onNext: { (val) in print(val) }).disposed(by: disposeBag)// 执行结果1,2,3,4,5,6在 map 操作:Observable<Int&g

2021-10-27 15:51:04 750 2

原创 Swift之深入解析基于闭包的类型擦除

与许多其它语言相比,使 Swift 更加安全,更不易出错的原因之一是其先进的(并且在某种程度上是不容忍的)类型系统,这是一种语言功能,有时可能会给人留下深刻的印象,使我们的工作效率提高很多,而有时却令人沮丧。在 Swift 中处理泛型时,可能发生的一种情况,以及通常如何使用基于闭包的类型擦除技术来解决这种情况。假设要编写一个类,可以通过网络加载模型,由于不想为应用程序中的每个模型都复制此类,因此选择使其成为泛型类,如下所示:class ModelLoader<T: Unboxable &am.

2021-10-25 18:33:53 27216 2

原创 Swift之深入解析Key Paths的功能与应用

一、前言自从 Swift 刚开始就被设计为是编译时安全和静态类型后,它就缺少了那种经常在运行时语言中的动态特性,比如 Object-C, Ruby 和 JavaScript。举个例子,在 Objective-C 中,我们可以很轻易的动态去获取一个对象的任意属性和方法,甚至可以在运行时交换它们的实现。虽然缺乏动态性正是 Swift 如此强大的一个重要原因,它帮助我们编写更加可以预测的代码以及更大的保证了代码编写的准确性, 但是有时候,能够编写具有动态特性的代码是非常有用的。值得庆幸的是,Swift 不

2021-10-25 18:08:58 27812 2

原创 Swift之深入解析如何实现Promise

一、前言异步编程是开发 App 的一个难点,多线程操作,线程的切换,多层嵌套 callback,使得代码十分的混乱,难以理解。func load(_ callback: (Value) -> Void) { loadService.load { result in let saveableItem = result.transfromToSaveableItem saveQueue.async { saveService

2021-10-24 20:36:22 39446 4

原创 Swift之深入解析如何自定义操作符

一、Swift 运算符运算符是一个符号,用于告诉编译器执行一个数学或逻辑运算。Swift 提供了以下几种运算符:算术运算符比较运算符逻辑运算符位运算符赋值运算符区间运算符其它运算符① 算术运算符如下所示,列出了 Swift 语言支持的算术运算符,其中变量 A 为 10,变量 B 为 20:运算符描述实例+加号A + B 结果为 30−减号A − B 结果为 -10*乘号A *

2021-10-24 16:20:50 38671 8

原创 SwiftUI之深入解析如何实现3D Scroll效果

一、SwiftUI 视图创建首先,创建一个新的 SwiftUI 视图,为了举例说明,在这个新视图中,会展示一个有各种颜色的矩形列表,并把新视图命名为 ColorList:import SwiftUIstruct ColorList: View { var body: some View { Text("Hello, World!") }}struct ColorList_Previews: PreviewProvider { static var p

2021-10-24 13:44:24 53375 2

原创 iOS之性能优化·UITableView深度优化

一、前言UITableView 的优化主要从四个方面入手:提前计算并缓存好高度(布局),因为 tableView:heightForRowAtIndexPath: 是调用最频繁的方法;滑动时按需加载,防止卡顿。这个在大量图片展示,网络加载的时候很管用,配合 SDWebImage;异步绘制,遇到复杂界面,遇到性能瓶颈时,可能就是突破口;缓存一切可以缓存的,这个在开发的时候,往往是性能优化最多的方向。大概需要关注的:cell 复用;cell 高度的计

2021-10-23 19:41:08 37941 2

原创 iOS逆向之深入解析如何使用Theos开发插件

一、Logos 语法Logos 作为 Theos 开发组件的一部分,通过一组特殊的预处理指令,可以让编写函数钩子(hook)代码变得非常简单和清晰,Logos 是随着 Theos 发布的。%hook 指定需要 hook 的类名,以 %end 结尾。%log 用来打印 log,将信息输入到 syslog 中,如 %log((NSString *)@“ZeluLi”)。%orig 执行被 hook 函数的原始代码,类似于 super.method 功能。%group 该指令用于 %hook 的分组,

2021-10-23 03:05:30 37255 6

原创 iOS逆向之hook框架frida的安装和使用

一、FridaFrida 是一款基于 Python + javascript 的 hook 框架,通杀 android\iOS\linux\win\osx 各平台。Frida 原理是手机端安装一个 server 程序把手机端的端口转到 PC 端写的 python 脚本进行通信,而 Python 脚本中采用 javascript 语言编写 hook 代码。① install frida on deviceStart Cydia and add Frida’s repository by navig

2021-10-23 02:33:56 46491 12

原创 iOS之深入解析谓词NSPredicate的语法与应用

一、简介NSPredicate 的官方解释如下:The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering.NSPredicate 类是用来定义逻辑条件,用来有约束的获取内存中的对象或过滤搜索。简而言之:只选取符合条件的对象。二、基本语法使用谓词(NSPredicate)都需要为谓词

2021-10-22 18:30:32 37040 2

原创 RxSwift之深入解析如何创建观察者Observer

一、什么是观察者?“观察者”是用来监听事件,然后它需要这个事件做出响应。例如:弹出提示框就是观察者,它对点击按钮这个事件做出响应。那么,什么是观察者呢?其实,响应事件的都是观察者。当室温高于 33 度时,打开空调降温,打开空调降温就是观察者 Observer:当《海贼王》更新一集时,我们就立即观看这一集,观看这一集就是观察者 Observer:当取到 JSON 时,将它打印出来,将它打印出来就是观察者 Observer:当任务结束后,提示用户任务

2021-10-21 19:49:08 51091 10

原创 【数据结构与算法】之深入解析常用的五大算法设计策略

一、分治① 基本思想在计算机科学中,分治法是一种很重要的算法,字面上的解释是“分而治之”,就是将一个难以直接解决的大问题,分割成 n 个规模较小的子问题,这些子问题相互独立,且与原问题相同,然后各个击破,分而治之。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)等。能用分治法的基本特征:问题缩小到一定规模容易解决;分解成的子问题是相同种类的子问题,即该问题具有最优子结构性质(递归思想);分解而成的小问题在解决之后要可以合并;

2021-10-20 20:52:07 38796 39

原创 Python之深入解析Vulture如何一键找出项目中所有无效的代码

一、前言Vulture 可以在Python程序中查找未使用的代码,这对于清理和查找大型项目(代码库)中的错误非常有用。不过由于 Python 的动态特性,像 Vulture 这样的静态代码分析器很可能会遗漏一些无效代码,此外,可能会将仅被隐式调用的代码标记为未使用。尽管如此,Vulture 对于提升代码质量来说可能是一个非常有用的工具:速度快:静态代码分析;靠谱:已测试;兼容强:与 pyflies 相辅相成,具有相同的输出语法;可排序:可以按大小对未使用的类和函数

2021-10-20 19:15:05 25922 5

原创 Python之深入解析Box为字典添加高级点符号访问特性

一、前言正常情况下,想访问字典中的某个值,都是通过中括号访问,比如:test_dict = {"test": {"imdb stars": 6.7, "length": 104}}print(test_dict["test"]["imdb stars"])# 104而通过 Box 模块,可以扩展字典功能,使用点符号访问元素:from box import Boxmovie_box = Box({ "Robin Hood: Men in Tights": { "imdb stars":

2021-10-20 19:00:45 20749 2

原创 iOS之深入解析静态Pod与动态Pod

一、静态库与动态库在项目中使用 pod 实现模块化,对于子模块和第三类库的导入方式存在两种:静态库、动态库。当在 podfile 中指定 use_frameworks! 时,子模块和第三方类库将被打包成 .framework 动态库,模块之间的代码不能直接引用,需要添加依赖;反之(默认情况)将打包成 .a 静态库:动态库和静态库的区别:资源加载方式;包的大小;编译速度。二、资源加载方式s.dependency 'xx’:静态方式中各模块的 p

2021-10-19 20:50:03 27914 5

原创 iOS之深入解析Hash在iOS中的应用

一、哈希表定义哈希表(hash table,也叫散列表),是根据键(key)直接访问访问在内存储存位置的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表 M,存在函数 f(key),对任意给定的关键字值 key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表 M 为哈希(Hash)表,函数f(key)为哈希(Hash)函数。若关键字为 k,则其值存放在 f(k) 的存储位置上,由此不需比较便可直接

2021-10-19 19:25:31 20041 2

原创 iOS之性能优化·内置图片瘦身

一、iOS 内置资源的集中方式① 将图片存放在 bundle将图片存放在 bundle,是一种很常见的方式,项目中各类文件分类放在各个 bundle 下,项目既整洁又能达到隔离资源的目的。采用 bundle 的加载方式为 [UIImage imageNamed:“xx.bundle/xx.png”]。将图片存放在 bundle 有比较明显的缺点:iOS 系统不会对其进行压缩存储,造成了应用体积的增大;使用 bundle 存储图片放弃了 APP thinning。明显的表现是 2 倍屏

2021-10-19 02:30:00 14603 3

原创 iOS之深入解析预乘透明度Premultiplied Alpha

一、前言Premultiplied Alpha 的概念,做过游戏开发的应该都知道,Xcode 的工程选项里有一项 Compress PNG Files,会对 PNG 进行 Premultiplied Alpha,Texture Packer 中也有Premultiplied Alpha 的选项。那么,Premultiplied Alpha 到底是什么呢?在 Alpha Blending: To Pre or Not To Pre 一文中,详情地阐明了 Premultiplied Alpha 的相关解释

2021-10-18 18:44:31 27294 18

原创 iOS之深入探究动画渲染降帧

一、为什么要对动画降帧?众所周知,刷新频率越高体验越好,对于 iOS app 的刷新频率应该是越接近越 60fps 越好,主动给动画降帧,肯定会影响动画的体验。但是另一方面,我们也知道动画渲染的过程中需要消耗大量的 GPU 资源,所以给动画降帧则可以给 GPU 减负,降低 GPU 使用率峰值。所以给动画降帧,实际上是一种用体验换性能的决策,在动画不复杂但是数量很多的情况下(比如一些弹幕动画、点赞动画),给动画降帧并不会影响动画效果,此时降帧就能累计节约大量的 GPU 性能。二、动画渲染对性能

2021-10-17 19:36:48 26220 3

原创 Python之深入解析如何使用Python Kivy实现一个“乒乓球”游戏

一、前言本文是基于 Kivy 开源跨平台的 Python 框架上创作的,Kivy 开源跨平台的 Python 框架能用于开发多点触控的用户界面程序,允许快速简单的交互设计,非常方便。那么,如何使用 Kivy 编写一款乒乓球游戏呢?我们将从一个基本的应用程序开始,描述创建这个游戏的每个步骤。Kivy 是用 Python 和 Cython 编写的,基于 OpenGL ES 2,支持各种输入设备并拥有丰富的部件库。使用相同的代码,可直接实现多平台应用,包括 Windows、macOS、Linux、Andr

2021-10-16 20:25:15 2871 2

原创 Python之将彩色图片批量转化为黑白图片

一、前言最近遇到了一个新的情景,需要将彩色图片转化为黑白图片,如果手动地去转化一张一张图片,那就真的太原始,效率太低。用 Python,只需要几行代码就可以在几秒内转化上千张图片。而且,这个功能的用途相当广泛,不仅能使图片变得深邃,而且还可以简化一些复杂模型的数学计算。二、准备① Python 安装在 windows 上安装 Python:下载 Python 的最新版本:访问链接 Python 官网,在 Windows 操作系统上安装 Python 3.10.0,大家也可以自行选

2021-10-16 18:30:21 3466 2

原创 Python之深入解析如何一键批量生成真实的手机号码及其号码归属地解析

① 目标场景平时在工作过程中,偶尔会需要大量的手机号码,去测试一些具体的业务功能,为了保证测试的有效性,手机号码的真实性尤为的重要。那如何按要求批量生成 一些真实的手机号码呢?本文就带大家利用 Python 批量生成手机号码。② 编写代码生成手机号码要批量生成手机号码,首先需要了解 11 位手机号码的组成规律,即:手机号码一共有 11 位,以 1 开头;第 2 位的数值是 3、4、5、7、8 中的一个;第 3 位根据第 2 位的数字,对应运营商的生成规律;后

2021-10-16 15:18:39 3062 2

原创 Python之30秒就能学会的漂亮短程序代码

① 二维列表根据给定的长和宽,以及初始值,返回一个二维列表:def initialize_2d_list(w, h, val=None): return [[val for x in range(w)] for y in range(h)]例如:>>> initialize_2d_list(2,2)[[None, None], [None, None]]>>> initialize_2d_list(2,2,0)[[0, 0], [0, 0

2021-10-16 14:24:34 709 8

原创 App设计灵感之十二组精美的机票预订App设计案例

想要去远方旅行的时候,一张机票就可以帮助你快速抵达目的地。① Flight Booking Mobile App by Sauqi Arif② Flight Booking App Design by Hadi Altaf③ Travel App Concept by Bhavna Kashyap④ Ticket Booking App Design Concept by Dmitry Lauretsky⑤ Airline App by Shakuro⑥ Air Ticket App

2021-10-16 13:18:53 599 1

原创 App设计灵感之十二组精美的房产App设计案例

租房时,需要考量的内容非常多,价格、地理位置、周边环境、房屋结构等等内容,在租房 App 中,需要将这些内容展示出来,帮助用户更详细的了解目标房型的基本情况。① Elite Apartments Rental App Design by Conceptzilla② Griyo - Home Rental App by Regi Pangestu③ Home Rent App by Risang Kuncoro④ Home Rental App by Dmitry Lauretsky⑤ Ho

2021-10-16 13:10:14 507 1

原创 【数据结构与算法】之深入解析图的拓扑排序

一、拓扑排序简介① 什么是有向无环图?一个无环的有向图称为有向无环图(Directed Acycline Graph),简称 DAG 图,如下所示:图中最左边的是有向树,中间的是有向无环图,最右则的是有向图(因为 BED 三个顶点之间构成一个有向环,ACEB 也存在环路)。② 什么是 “活动” ?所有的工程或者某种流程都可以分为若干个小的工程或者阶段,我们称这些小的工程或阶段为“活动”。打个比方,如何把一只大象装到冰箱里,很简单,分三步:第一,打开冰箱门;第二,将大象

2021-10-14 21:00:04 25514 19

原创 App设计灵感之十二组精美的智能家居App设计案例

通过手机远程启动家里的各种家用电器,让我们回到家后可以享受到舒适的环境,这便是智能家居给我们带来的便利。① Smart Hub Application design by Ariuka② Smart Home by Sèrgi Mi③ Smart Home Mobile App by Ghulam Rasool④ Smart Home Mobile App by Ghulam Rasool⑤ Smart Home Mobile App by Ghulam Rasool⑥ Smart H

2021-10-13 19:19:02 978 1

原创 App设计灵感之十二组精美的手机闹钟App设计案例

手机闹钟的样式似乎很简单,但是通过不同元素之间的组合,可以改变整个界面的风格。这12组闹钟界面设计风格各不相同,对于元素的组合,都有自己独特的方式。① Micro-interaction iOS Alarm Clock App by Sajon② Voice command in smart to do app. by Zazuly Aziz③ Smart-i Clock by Prakhar Neel Sharma④ Skeuomorph Clock App by Jatin Lathiya

2021-10-13 19:00:47 801 1

原创 App设计灵感之十二组精美的数据图表展示App设计案例

在健身的时候,我们会关注健身过程的一些数据,比如公里数、时间、消耗能量等,通过数字与图表,可以将这些数据很直观的展示给使用者。① Weight loss app by Hesam Mousavi② Step Tracker App Concept by MohamadRasouli③ Running app by Nastia Diadenchuk④ Mobile App by blacklead studio⑤ Home Workout App by MohamadRasouli⑥

2021-10-13 18:28:04 1030 1

原创 App设计灵感之十二组精美的听书App设计案例

如何将碎片化的时间利用起来是现在人们关心的问题。通过听书软件可以将书本拆解为多个短单元,将碎片时间充分利用起来,也能很好的吸收书中的知识。这里有十二组听书软件界面设计,来看看设计师们是如何让听书软件看起来更有使用的欲望。① Podcasts by Andrew Tanchuk② Podcast And Audiobook App by Shakuro③ Night Stories by Mickael Guillaume④ Ebook & Audiobooks Store App by

2021-10-13 18:18:17 862 1

原创 App设计灵感之十二组精美的天气预报App设计案例

虽然常常调侃最不准的就是天气预报,但是它在日常生活中的作用还是非常重要的。将当前气温、天气等内容作为主要展示内容,辅助一些微动效或是符合当前天气状况的效果,可以更好的给用户传达天气情况。① Weatherly Kit P2 by Afshin T2Y② Weather App Design by Hadi Altaf③ Weatherly Kit by Afshin T2Y④ Weather forecast interface by Natalia Berdnyk⑤ Weather Ap

2021-10-13 14:04:09 934 1

原创 App设计灵感之十二组精美的睡眠监测类App设计案例

人的一生有三分之一的时间是在睡眠当中,睡眠对人们来说是非常重要的。对睡眠时间和状态有一定的了解可以帮助我们的生活进行一定的改善。① Smart Nora Health - Smart Sleep Tracking App by RD UX/UI② Sleepy - sleep tracking by Rafał Staromłyński③ Sleep Tracking App - Mobile App by Mihai Petrea④ Sleep Tracker by Rudi Hartono

2021-10-13 13:38:10 1267 1

原创 App设计灵感之十二组精美的音乐播放器App设计案例

带上耳机,打开这些风格独特的音乐播放器,进入音乐的世界。① Podcast App by Herdetya Priambodo② Playo Music player app by Hesam Mousavi③ Music Streaming App by Ihor Chipak④ Music Player App by Amanullah⑤ Music Player App Design by Bogdan Nikitin⑥ Music app concept by Monika N

2021-10-13 02:30:00 1157 1

原创 App设计灵感之十二组精美的旅行App设计案例

有哪些名胜古迹可以去旅行,旅行目的地的食宿如何解决,这些都可以通过旅行 App 来解决。来看看这十二组旅行 App 给你的灵感吧。① Trip time mobile app screens by Taras Migulko② Travel UI exploration - Mobile App by Zesan③ Travel service - Mobile App by Abdullah Mamun④ Travel service - Mobile App by Anastasia⑤

2021-10-12 21:03:51 1303 2

Kotlin编写的示例spring引导应用程序

用kotlin编写的示例spring引导应用程序,使用spring引导执行器管理应用程序,并使用swagger2作为API文档

2023-08-10

Objective C之计算+load方法的耗时

使用 hook 监测 +load 执行时间方案,并结合 CocoaPods 实现一行代码集成耗时监测的功能。

2022-04-04

Objective C之Hook所有+load方法简单示例

详细地实现了Hook所有+load方法的流程:动态库LoadRuler的添加、获取MachO和所有类的关键代码,以及Category的处理等

2022-04-02

SwiftUI高级动画之路径Paths、几何效果GeometryEffect与AnimatableModifier的效果实现

本示例详细地实现了SwiftUI高级动画的路径Paths(形状路径如何动画化、如何创建可动画数据、如何用小数画边、如何设置多个参数的动画、超过两个可动画的参数、如何通过 VectorArithmetic 使自己的类型动画化等动画效果的实现),几何效果GeometryEffect(关键帧动画、动画反馈、跟随路径创建视图、ignoredByLayout() 方法等)以及AnimatableModifier等。

2022-03-05

SwiftUI之绘制徽章视图的路径和形状

本篇教程就是SwiftUI使用路径和形状创建徽章的过程,创建的徽章可以和其它图形组合形成位置标志。如果想要针对不同种类的地标创建不同的徽章,可以尝试改变徽章基本组成符号的重复次数、角度或大小。跟着教程一步步走,可以下载工程文件进行实践。

2022-01-29

SwiftUI之如何处理特定的数据和如何在视图中适配数据模型对象.zip

SwiftUI之详细地实现了如何标记特定的数据,如何过滤数据列表,如何添加控件来切换状态、如何使用可观察对象来存储数据,如何视图中适配数据模型对象等功能与逻辑

2021-12-20

SwiftUI之创建列表展示页和导航跳转详情页.zip

SwiftUI之详细的实现了如何创建行视图、自定义行预览、创建地标展示列表、创建动态列表、设置从列表页到详情页的页面导航等功能和逻辑实现

2021-12-19

SwiftUI之如何创建和组合视图.zip

详细地实现了SwiftUI如何定制文本视图(Text View),如何使用栈来组合视图,如何创建自定义图像视图,以及UIKit视图与SwiftUI视图混合使用等

2021-12-18

Python之俄罗斯方块源代码及程序.zip

Python实现的俄罗斯方块,具有单人模式、普通双人模式、镜像双人模式(即掉落方块都一样)、双人加速模式(每消去一行都会给对方加速)、双人交换控制模式(一次控制自己的方块,一次控制对方的)、双人平衡模式(会改变对方的容量)、双人单容器模式,并且游戏的界面设计也是相当简洁舒服。

2021-10-28

Python之Kivy乒乓球游戏的实现与kv规则.zip

Python Kivy实现乒乓球游戏和kv规则

2021-10-16

iOS之列表性能优化异步绘制.zip

iOS之列表性能优化异步绘制:不依赖任何第三方pod框架,主要从异步线程绘制、图片异步下载渲染等方面,尽可能优化UITableView的使用,提高滑动流畅性

2021-10-07

iOS之RSA加解密的方法实现.zip

集成了RSA生成密钥对、加载公钥、加载私钥、数据加密和数据解密等功能的工具类,iOS可以直接拖入工程使用RSA的加解密。

2021-09-06

HarmonyOS之基于Service Ability的启动、停止、连接、断开连接等操作及跨设备操作.zip

基于 Service 模板的 Ability(以下简称 "Service")主要用于后台运行任务(如执行音乐播放、文件下载等),但不提供用户交互界面。Service 可由其他应用或 Ability 启动,即使用户切换到其他应用,Service 仍将在后台继续运行。

2021-08-11

HarmonyOS之音乐播放器展示前台Service的使用方法.zip

本示例通过音乐播放器,展示了前台Service的使用方法。一般情况下Service都是在后台运行的,后台Service优先级都是比较低的,当资源不足时,系统有可能回收正在运行的后台Service。一些场景下(如:播放音乐),用户希望应用一直运行,此时就需要用到前台Service。前台Service会使用保持正在运行的图标在系统状态栏显示。 本示例主界面分为三个按钮,点击Start Play按钮会启动前台服务并播放音乐,点击Pause Play按钮会暂停播放音乐,前台服务继续运行,点击Stop Play按钮会停止播放音乐并关闭前台服务。

2021-08-11

PageAbility.zip

Page 模板的 Ability,用于提供与用户交互的能力。一个 Page 可以由一个或多个 AbilitySlice 构成,AbilitySlice 是指应用的单个页面及其控制逻辑的总和。跨设备迁移支持将 Page 在同一用户的不同设备间迁移,以便支持用户无缝切换的诉求。

2021-08-10

iOS之多环境的配置.zip

运用多target形式、多scheme方式以及 config 配置文件配置多环境的工程配置示例

2021-08-05

HarmonyOS之通过 Preferences 创建、删除、更新和查询应用程序偏好数据实现登录页面偏好数据存取及主页面背景色偏好数据存取.zip

轻量级偏好数据库主要提供轻量级Key-Value操作,支持本地应用存储少量数据。本示例通过 Preferences 创建、删除、更新和查询应用程序偏好数据,主要实现了登录页面偏好数据存取及主页面背景色偏好数据存取。 说明: 启动页面勾选不再显示,保存该偏好数据,下次启动应用不再显示该页面,直接进入模拟登录页面。 模拟登录页面输入用户名和密码,点击登录跳转到主页面,自动保存登录状态,下次不再显示模拟登录页面。 主页面点击应用背景色后,再点击对应颜色可保存背景色,点击清除偏好设置,清除已保存的背景色。

2021-08-03

HarmonyOS之实现对象关系映射数据库的升级、备份、删除、恢复以及表的增删改查.zip

本示例通过注解和继承来实现数据库和表的创建,实现了数据库的升级、备份、删除、恢复,实现了表的增删改查,并监听数据变化。 @Database注解,且继承了OrmDatabase的类,对应关系型数据库; @Entity注解,且继承了OrmObject的类,对应关系型数据库中的表; OrmContext实现数据库的升级、备份、删除、恢复,表的增删改查并监听数据变化。 说明: 点击插入按钮插入数据,点击更新按钮更新数据,点击删除按钮删除数据,点击查询按钮查询数据并显示查询结果; 点击升级按钮数据库升级,从版本1升级到3,会从1升级到2再从2升级到3; 点击备份按钮数据库备份,点击删除数据库按钮删除数据库,点击恢复按钮恢复数据库。

2021-08-03

HarmonyOS之基于Data Ability的关系型数据库操作方法.zip

本示例通过注解和继承来实现数据库和表的创建,实现了数据库的升级、备份、删除、恢复,实现了表的增删改查,并监听数据变化。 @Database注解,且继承了OrmDatabase的类,对应关系型数据库; @Entity注解,且继承了OrmObject的类,对应关系型数据库中的表; OrmContext实现数据库的升级、备份、删除、恢复,表的增删改查并监听数据变化。 使用说明: 点击插入按钮插入数据,点击更新按钮更新数据,点击删除按钮删除数据,点击查询按钮查询数据并显示查询结果; 点击升级按钮数据库升级,从版本1升级到3,会从1升级到2再从2升级到3; 点击备份按钮数据库备份,点击删除数据库按钮删除数据库,点击恢复按钮恢复数据库。

2021-08-02

HarmonyOS之演示生物特征识别应用于设备解锁、应用登录、支付等身份认证场景.zip

本示例演示了生物特征识别应用于设备解锁、应用登录、支付等身份认证场景。当前生物特征识别支持2D人脸识别、3D人脸识别,可应用于设备解锁、应用登录、支付等身份认证场景。

2021-08-02

HarmonyOS之演示照片/视频、位置、日历、麦克风的权限申请并通过访问相关业务确认授权是否成功.zip

本示例演示了照片/视频、位置、日历、麦克风的权限申请,并通过访问相关业务确认授权是否成功。应用权限是程序访问操作某种对象的许可。权限在应用层面要求明确定义且经用户授权,以便系统化地规范各类应用程序的行为准则与权限许可

2021-08-02

HarmonyOS之如何使用音视频播放控制框架实现音乐播放功能.zip

本示例展示了如何使用音视频播放控制框架实现音乐播放功能。主要功能包括了曲目播放、暂停、上一首、下一首、播放进度、跳转曲目列表等功能。曲目列表展示曲目名称,并选中播放曲目。 音视频播放控制框架,主要包括浏览器(AVBrowser)、控制器(AVController)、浏览器服务(AVBrowserService)、会话(AVSession)四部分组成。这四部分构成了音视频播放控制框架的核心。

2021-08-02

HarmonyOS之演示音频播放、音频采集、音量管理和短音播放等功能.zip

音频模块支持音频业务的开发,提供音频相关的功能,主要包括音频播放、音频采集、音量管理和短音播放等。 1、音频播放的主要工作是将音频数据转码为可听见的音频模拟信号并通过输出设备进行播放,同时对播放任务进行管理。 2、音频采集的主要工作是通过输入设备将声音采集并转码为音频数据,同时对采集任务进行管理。 3、音量管理的主要工作是音量调节,输入/输出设备管理,注册音频中断、音频采集中断的回调等。 4、短音播放主要负责管理音频资源的加载与播放、tone音的生成与播放以及系统音播放。

2021-08-02

HarmonyOS之演示如何通过相机模块相关接口实现拍照、录像等功能.zip

相机模块支持相机业务的开发,可以通过已开放的接口实现相机硬件的访问、操作和新功能开发,最常见的操作如:预览、拍照、连拍和录像等。也可以通过合适的接口或者接口组合实现闪光灯控制、曝光时间控制、手动对焦和自动对焦控制、变焦控制、人脸识别以及更多的功能。

2021-08-02

HarmonyOS之Java UI的CustomLayout.zip

本示例演示了Java UI框架提供的自定义布局能力。在不同屏幕分辨率下对子组件进行测量,确定子组件的大小,在屏幕横向空间不足的情况下,下一个子组件将进行自动换行。 本示例仅支持在标准系统上运行,打开应用所展示的界面即为自定义的布局。

2021-08-02

HarmonyOS之演示帧动画、数值动画、属性动画和组合动画的实现.zip

动画是组件的基础特性之一,精心设计的动画使 UI 变化更直观,有助于改进应用程序的外观并改善用户体验。 1、帧动画是利用视觉暂留现象,将一系列静止的图片按序播放,给用户产生动画的效果。 2、AnimatorValue 数值从0到1变化,本身与 Component 无关。开发者可以设置0到1变化过程的属性,例如:时长、变化曲线、重复次数等,并通过值的变化改变组件的属性,实现组件的动画效果。 3、AnimatorProperty 可以为 Component 设置某个属性或多个属性而实现动画效果。

2021-08-02

HarmonyOS以长列表联系人为例,演示ListContainer组件的基本使用.zip

ListContainer是用来呈现连续、多行数据的组件,包含一系列相同类型的列表项。 本示例通过长列表联系人的案例来演示 ListContainer 组件的基本使用方法。

2021-08-02

CoreFoundation源码

CoreFoundation源码分析

2021-07-27

iOS自定义KVC的实现和使用.zip

完整地实现了iOS自定义KVC的流程和步骤,并备注详细的说明和解释,方便阅读和理解!

2021-06-05

Apple 可编译 objc 源码.zip

Apple可编译objc源码:可追踪查看的iOS的底层实现和相关源码,可以编译调试iOS相关的底层实现原理探索,深入了解iOS的低层封装和源码思想。

2020-09-15

OpenGL ES之手写绘画板.zip

OpenGL ES之手写绘画板:详细的实现了PaintView的画笔的颜色、尺寸、笔触等设定切换,并运用OpenGL ES自定义着色器实现画板曲线的绘制,并实现了重做、重绘、橡皮擦、撤销、清除等逻辑的实现。

2020-09-09

RxSwift基本使用.zip

详细的介绍了RxSwift的安装和配置,并实现了部分控件的基本使用,包含“监听单个 textField 内容的变化(文本响应)”、“实现UIButton点击响应”、“定时器”、“KVO”、“手势”、“通知”等RxSwift的简化写法,代码更简洁,易读性更高。

2020-09-04

GLSL之“大长腿”美颜效果.zip

GLSL之“大长腿”美颜效果:详细地实现了图片的“大长腿”的效果,获取纹理的高度, 并根据纹理的高度以及宽度, 计算出图片合理的宽度;根据当前控件尺寸和纹理尺寸,计算初始纹理坐标等重点逻辑的详细实现和注释讲解

2020-08-29

Metal之MTLBuffer批量加载顶点数量较多的图形渲染.zip

Metal之MTLBuffer批量加载顶点数量较多的图形渲染: 详细的实现了完整的逻辑和详尽的注释说明, 以及顶点数据的存储方式以及它们的应用场景

2020-08-28

Metal之基于世界坐标系下渲染三角形.zip

Metal渲染三角形是基于世界坐标系下的渲染显示,运用Metal着色器、CJLRenderer渲染循环类等实现彩色三角形的渲染显示

2020-08-26

Metal之动态切换屏幕颜色.zip

Metal之动态切换屏幕颜色:详细地实现了运用Metal实现颜色动态渲染和屏幕的颜色自动切换功能,并配置详细的注释和逻辑实现流程

2020-08-25

Swift之“索引”快速定位.zip

Swift之“索引”快速定位:详细的实现了给TableView新增“索引”数组快速定位查找,按照“首字母”的顺序排列展示数据.

2020-08-25

Swift之Internationalization处理及App内切换.zip

Swift之Internationalization:详细的实现了Swift版本地国际化处理和在App内的语言切换实现逻辑,并封装了语言切换辅助类,可直接拖入工程使用,实现App内的快速语言切换

2020-08-25

OpenEL GS滤镜处理(缩放滤镜、灵魂出窍滤镜、抖动滤镜、闪白滤镜、毛刺滤镜、幻觉滤镜).zip

详细地介绍了缩放滤镜、灵魂出窍滤镜、抖动滤镜、闪白滤镜、毛刺滤镜、幻觉滤镜实现原理和实现流程,并详细的注释说明的代码逻辑。

2020-08-22

GLSL滤镜之马赛克.zip

OpenGL ES之运用GLSL详细的实现了“灰度马赛克 ”、“颠倒马赛赛克”、“方形马赛克”、“六边形马赛克”、“三角形马赛克”滤镜效果的详细实现和注释说明

2020-08-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除