导航控制器,pushViewController 的转场动画

2021-09-26
阅读 2 分钟
1.5k
与 ViewController 的 present 转场动画不同1, 导航控制器,pushViewController 的转场动画,的代理是 {代码...} 2, 指定动画的方法 {代码...} 具体的动画设置也不同使用 snapshotView , 会出现奇怪的效果代码很好理解 {代码...} github repo

解码多种可能类型的两种技巧:属性包装器

2021-09-15
阅读 5 分钟
910
Swift 的属性包装器是语法糖,他可以让代码更加的声明式定义属性的时候,把规则写进去属性包装器, 主要使用 wrappedValue, 有时候用到 projectedValue问题:存在这样的一个结构体: {代码...} 后端传过来,一个 json, 要求 json 对应的内容,长这样,能够解析出来 {代码...} json 对应的内容,长这样,也可解析出来 {代码....

GitHub 升级,正解

2021-09-09
阅读 1 分钟
823
github 操作,使用个人访问令牌,配合 https才是正理官方文档对于已经存在的仓库git push https://username:password@github.com/username/repository.git等价于git push https://username:password@github.com/org/repository.git等价于git push https://username:your_token@github.com/username/repository.git例子gi...

github 升级,小技巧,后知后觉

2021-09-03
阅读 2 分钟
937
背景github 不支持 rest 的形式,操作仓库,( 即账户 + 密码,操作, 不行了 )github 的仓库操作,支持基于 token 认证的操作( token-based authentication )本文写的是,通过 ssh 操作 github 上的 git repo细节GitHub 支持 ssh 部署的粒度全面,可以基于用户,对所有的仓库统一部署可以基于仓库部署那么一个用户创...

珠江风光带最近算法面试 ( 20200814 ) : 怎么写错?

2021-08-14
阅读 1 分钟
788
1, 最大栈答案: 伴随栈法,还可以给每个元素,添加一个伴随属性,记录最大值我的错误想法:1, 维持最大值,那使用优先队列吧2, 相对给每个元素,记录最大值我打算使用,hash map, 记录每个元素对应的最大值a, 如果栈里面的元素,都是独特的,简单的 KV 就可以记录,每个元素对应的最大值b, 如果栈里面的元素,可以存...

Core Text 雕虫小技: 建立指示行

2021-06-29
阅读 6 分钟
1.3k
本文使用 Core Text 实现这个效果,滚动文本,中间那一行变红Core Text 实践 +:文字随心所欲摆放前文等,已经实现了,使用 CoreText, 可以自定义的控制每一行的位置思路滚动的时候,使用一个计时器,不停的重绘,setNeedsDisplay()找出中间的那一行,变红其它行,维持原样实现父视图, 滚动视图 {代码...} 子视图,文本...

Moya 书写简化思路 2 : enum 的 task

2021-06-24
阅读 1 分钟
1.4k
使用 Moya 做 iOS 的网络请求,项目中有一百多个网络请求方法,就建立对应的 enum 条目其中 task 的填写,一般 case 下,再这样 {代码...} 使用 Mirror, 改造 {代码...}

Moya 书写简化思路: enum

2021-06-23
阅读 2 分钟
1.1k
使用 Moya 做 iOS 的网络请求,项目中有一百多个网络请求方法,就建立对应的 enum 条目其中 path 的填写,一般 case 下,再抄写一遍"/" + String( 具体的 case )长这样 {代码...} 本文通过 Mirror 特性,优化 path 的书写这种情况下即后端给的,就是 iOS 端使用的( 毫无规律,则本文不适合 )( 本文适合通常情况下 )1...

UICollectionView 横向布局的两种途径

2021-04-18
阅读 1 分钟
3.1k
使用 UICollectionView 实现下面的效果途径 1,简单直接, custom UICollection View Layout ,横着码途径 2,UICollectionViewFlowLayout + UICollection View 的宽度控制这样 layout 下, {代码...}

swift: 双向绑定,代码举例

2021-04-18
阅读 2 分钟
3.2k
例子一:事件绑定,直接触发置顶显示,滚动消失点击显示,再点消失 {代码...} 间接触发 {代码...} 例子2:事件绑定,直接触发点击出现,再点收起 {代码...} 间接触发 {代码...}

Android 中,library 的使用

2021-04-13
阅读 1 分钟
1.2k
方法一:app 下面的build.gradle 中, {代码...} 方法 2:1, google 写的 {代码...} 真棒settings.gradle 中, {代码...} 2, build.gradle 中 {代码...} 第 3 步:建立依赖关系第 4 步,应用 {代码...}

UILabel 的行数控制技巧

2021-04-13
阅读 1 分钟
2.2k
UILabel 的行数控制,例如显示 2 行第一种,大家都会: {代码...} 第 2 种, 可以通过字体大小 和 label 的 size ,来控制 {代码...} 配合 {代码...} 按照第二种方法设计后,前面两种效果,很自然,为什么, 第三个 Label 的效果,是垂直居中?不是靠上去一些。这样设置:label 的 centerY 约束 = view 的 top + 常量 ( 3...

加深对 module 的理解,swift repo, 命名空间 local

2021-04-12
阅读 1 分钟
1.2k
为了便于修改调试别人发布的 repo把别人的代码,拉到本地,为了保持一致,不改变其命名空间本文例子是,把一个 github framework 的代码,内置 project 中这里用的是 rechsteiner/Parchment拷贝网上下载的源代码放到使用的 project 中并删掉项目配置选中项目 project,新建 target创建动态库库名,与 git repo 一致降低 ...

leetcode 236. 二叉树的最近公共祖先

2021-03-03
阅读 2 分钟
2.8k
最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

计算机网络

2021-01-14
阅读 2 分钟
1.2k
计算机网络自底向上介绍:每一层都有, 一些协议 protocols硬件层, move 0 and 1双铜绞线Cat5 铜线, 就是 Category 5 铜线cable 电缆, 电缆只能保证两台机器的连接form point-to-point connectionshub, 连接多台机器网络上的噪音, noisehub, allow many computers to communicate with each other连接在 hub 上的 syst...

iOS 中 MIDI 的处理,结合 AudioKit 源代码

2020-12-31
阅读 8 分钟
3.1k
MIDI, MIDI 不是音频数据MIDI 乐器数字接口, Musical Instrument Digital InterfaceMIDI 计算机能理解的乐谱,计算机和电子乐器都可以处理的乐器格式MIDI 不是音频信号,不包含 pcm buffer通过音序器 sequencer,结合音频数据 / 乐器 ,播放 MIDI Event 数据( 通过音色库 SoundFont,播放乐器的声音 )通过 AVAudioSeq...

Swift 文件处理: 完成文件移动

2020-12-28
阅读 2 分钟
2.3k
完成了 Swift 文件处理: 强迫症文本解析 之后,就可以移动文件了背景:学习 AudioKit/AudioKit 的源代码,有一个库 AudioKit/Cookbook,他的例子都在一层,修改调试不方便,建立分层的物理文件夹,再建立分层的 Xcode 工程逻辑目录,会方便很多思路前文已经解析出来,需要的文件夹名称,和对应的结构体名( SwiftUI 中的...

Audio Kit 播放的相关源代码,看看

2020-12-15
阅读 6 分钟
1.8k
Audio Kit 真正厉害的是,MIDI 电子乐相关,本文简单看看 Audio Kit 播放相关的源代码调用部分 {代码...} 播放使用 3 步:创建 engine 和 player, 指定输出 engine.output = player再开启 engine准备播放文件拿文件 url, 创建 AVAudioFile, 再拿 AVAudioFile,去创建 AVAudioPCMBuffer,给音频播放节点调度 AVAudioPCMB...

iOS 开发简单的手绘应用

2020-09-05
阅读 4 分钟
1.7k
开发一款简单的 iOS 手绘应用,收集点,绘制形状,给形状着色,呈现给用户,好像就完了框架是 Quartz2D1, 收集点首先需要有一个界面 UIView, 用这个界面监听用户的手势,收集点用户按下手指location(in, 从触摸事件中,获得在画板中的坐标 {代码...} 用户移动手指 {代码...} 用户抬起手指 {代码...} 2, 绘制形状,给形...

.txt 小说阅读器指南: 功能开发的 5 个老套路

2020-08-09
阅读 23 分钟
3.2k
本文介绍本地 .txt 小说阅读器功能开发的 5 个相关技术点。网络 .txt 小说开发,则多了下载和缓存两步一本书有什么,即书的数据结构一本书有书名,有正文,有目录手机书架上的书很多,需给书分配一个 id,去除重复小说用户的常见操作有两种,当前阅读进度记录和书签列表小说的主要模型 ReadModel书的两个自然属性: ID ...

pod 做了什么,子 project 作为动态库,三步走

2020-06-04
阅读 1 分钟
1.1k
pod 做了什么,子 project 作为动态库 framework,三步走 第一步,添加项目引用: 第二步: 跑一下子 project ,把其 product 作为 framework 第 3 步:把其 product 的 framework,拖入主 project 的依赖 最后,能跑通

渐进式,Objective-C 项目转 Swift 与 Swift 版本升级技巧

2019-12-11
阅读 1 分钟
1.7k
然后拷贝 Objective-C 项目的 Storyboard 文件,拷贝 .h 和 .m 文件(一般不拷贝 AppDelegate.h/.m ), 然后放入新的工程

接入 Umeng 推送遇到的,证书问题

2019-12-10
阅读 1 分钟
2.6k
1, 集成后测试模式可以推送成功,生产环境不能推送成功。以为证书问题,反复的删除创建上传,还是失败。 百度查看原因:发现开发时只有测试模式能推送,并且需要添加token才能推送,相当麻烦。 推送的开发模式,需要提供 device token , 否则直接全部通知,是收不到的消息的 {代码...} 注册推送设备,与打印设备凭证 也...

怎样造一个垂直的 TarBarController? VerticalTabBar,一般用于 iPad

2019-08-26
阅读 6 分钟
1.4k
这种需求不多,遇到了,还是要处理的 思路就是容器控制器,ContainerViewController . 封装一个 VerticalTabBar ,做控制器的管理工作, 左侧还有一个按钮栏,可以用表视图,UITableView 每一个按钮,就是一个 Cell ,再把按钮的点击绑定到管理的对应控制器上,就完了 第一点,容器控制器的管理 就是存在多个控制器,用...

开发一款 iOS 音乐播放器的五个点

2019-08-18
阅读 8 分钟
3.2k
播放很简单 一般分为两个过程,准备播放,与播放 准备播放,包括准备播放资源、播放器初始化和播放器准备好 其中准备播放资源 {代码...} 播放器初始化和播放器准备好 {代码...} 播放 audioPlayer.play(), 一行代码 第一点,进度条怎么做? 一般进度条,会做两件事, 随着播放的推移,进度条的滑块会一直向前走,有一个音...

拿起算法的钢笔: 找出两个有序数组的中位数

2019-07-31
阅读 4 分钟
1.6k
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 题目:请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3]nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2]nums2 = [3, 4] 则中位数是 (2 + 3)/2 = 2.5 分析: 常规做...

三道 google 风格 git 面试题及其解答

2019-06-28
阅读 4 分钟
1.5k
第一题: 把配置文件推送到了远程仓库,怎样删除远程仓库的该配置文件,本地还要用到这个文件。 这种操作失误,比较常见。一般这样解决: {代码...} 先解释第二步,本地需要,远程仓库不需要,肯定是要把那个文件写入 .gitignore 文件里面。否则以后还要删除。 第一步则是把该文件从 git 的暂存区域中删除。暂存区域,就是...

UICollectionView 固定行距列表左排: 来一个自定制 Layout

2019-06-18
阅读 11 分钟
6.3k
一般我们是使用 UICollectionViewFlowLayout , 熟悉的格子视图。也可以自定制 UICollectionViewLayout ,对于每一个列表元素,想放哪就放哪。

有趣的 iOS 启动广告页,直接 push,首页不出现

2018-11-19
阅读 3 分钟
4.2k
PM 提了个需求,启动广告界面点击了, 就直接进,不需要闪一下主界面。 要这种: 实现的思路,多 window 模式- 一般的广告界面就是 Key Window 上面的遮罩(子视图)。 要从广告界面 push,自然广告界面是一个控制器了。提升广告界面的层级,才可以。 这里提升为 window 。然后就是切换展示的窗口了,通过系统单例 AppDe...

AVFoundation 视频常用套路: 视频合成与导出,拍视频手电筒,拍照闪光灯

2018-11-02
阅读 13 分钟
3.2k
处理 AVFoundation,套路就是配置 session, 添加输入输出, 把视频流的管道打通。用 device 作为输入,获取信息,用 session 作为输入输出的桥梁,控制与调度,最后指定我们想要的输出类型。拍视频与拍照不同,会有声音,输入源就要加上麦克风了 AVCaptureDevice.default(for: .audio),视频流的输出就要用到 AVCaptureM...