東引甌越

不断学习, 与时俱进. - 始于2017

嗨,我是孙亚洲(@sunyazhou13),一名来自北国冰城的iOS开发者,也搞过一些mac.现居帝都北京.开发数年有余,没有为往圣续绝学深感惭愧.望诸位同仁多多指教.


  1. iOS抖音的上下滑实现

    前言 一直一来都在 研究抖音App做的短视频 上下滑动 的技术实现, 今天写了个demo,方便学习技术技巧和记录知识, 技术实现原理 UITableView 其实就是一个UITableView改变上下显示范围. talk is cheap show me the code 我说话不绕弯子,代码如下 实现起来非常简单 _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, -SCREEN_HEIGHT, SCREEN_WID …

    iOS开发, 抖音动画系列 继续阅读

  2. iOS数字倍数动画

    前言 写了一个简单的利用 透明度和 缩放 实现的 数字倍数动画 demo 实现思路 上代码 看比较清晰 // 数字跳动动画- (void)labelDanceAnimation:(NSTimeInterval)duration { //透明度 CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; opacityAnimation.durati …

    iOS开发, macOS开发 继续阅读

  3. iOS呼吸动画

    前言 快放假了, 怕十一文章更新不及时,早点完成文章,保证每个月 2篇的产出量, 今天给大家带来的是 呼吸动画, 做的不是特别好. 上图 大概是这个样子 需求和实现思路 具体要求 内部头像呼吸放大缩小 无限循环 每次放大同时需要背景还有一张图也放大 并且透明 点击缩放整个背景视图 实现思路 首先 需要使用创建一个Layer 装第一个无限放大缩小的呼吸的图 背景也需要一个Layer 做 放大+透明度渐变的动画组并且也放置一张需要放大渐变的图片 最后点击触发. 添加一个一次性的缩放动画即可 呼 …

    iOS开发, macOS开发 继续阅读

  4. iOS扩大UIButton的点击的响应范围

    前言 开发过程中经常遇到UIButton点击区域太小 又不想 改动按钮的大小. 今天的文章和大家分享一下解决这种问题的代码 实现思路 子类话UIButton 复写 它的hitTest:方法 子类话UIButton 复写 point:inside:withEvent: 方法 第一种方式 override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { let biggerButtonFrame …

    iOS开发, macOS开发 继续阅读

  5. iOS键盘动画细节

    前言 很久没写技术文章里,本篇记录了一下一个键盘弹出的小细节动画,像微信一样流程 上图 动画细节代码 细节核心主要是通知中的一些key 动画时长 动画的出现方式 ... 下面的通知是接收 键盘将要出现的通知UIKeyboardWillShowNotification [[NSNotificationCenter defaultCenter] addObserver:self selector:@sel …

    iOS开发, macOS开发 继续阅读

  6. 船与灯塔

    前言 荷兰🇳🇱被称为"海上马车夫",今天讲述的故事与海上马车夫的有关的爱情故事,但它属于东方,属于中国。 船🚢 它是一搜小船,船上有两只船桨,这艘船从驶出造船厂的时候,就被定义为普通货物运输船只,载重不超过1吨,造这艘船的主人希望能靠这只船养家糊口,但又舍不得花更多的钱买好的木料来制造它。 灯塔 这是一座集成很多高新科技的灯塔,塔基可以在海上漂浮,自动平衡系统让他在海浪的动荡中稳如泰山,灯塔的父母距离这座新的灯塔不远,形成海上灯塔群,发出很强的激光束,指明航线方向,这坐新的灯塔还能发出加 …

    文学 继续阅读

  7. iOS中CPU线程调试高级技巧

    前言 最近在开发直播,发现CPU性能被打满后导致CPU降频,发热严重,然后卡顿... 为了定位这个问题我们花费了至少 3天的时间 一点一点跟踪CPU的线程代码,当遇到C++的thread的时候没有符号表,只能看见一坨对象地址,除此以外连个方法名都没有的时候真是手足无措.本篇介绍一个高级调试 方法,使用符号表和相关 指令寻踪 相关代码调用,写的不好 大佬们请轻喷.代码相关过程感谢同事 陈豪的大力支持. Talk is cheap show me the code 我们的实现思路是找到动态库的首地址 …

    iOS开发, macOS开发 继续阅读

  8. Taptic Engine振动反馈

    前言 Taptic Engine 是苹果产品上推出的全新震动模块,该元件最早出现在 Apple Watch 中。iPhone 6s 和 iPhone 6s Plus 中,也同样内置了Taptic Engine,在设计上有所升级。 Taptic Engine 振动模块为 Apple Watch 以及 iPhone 6s、iPhone 7 提供了 Force Touch 以及 3D Touch,不同的屏幕操作,可以感受到不同的振动触觉效果,带来更好的用户体验 触觉振动体验 振动代码(旧方案) 调用 …

    iOS开发 继续阅读

  9. 利用UIToolBar做高斯模糊背景

    - (UIView *)containerBackgroundView { if (!_containerBackgroundView) { UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectZero]; toolBar.barStyle = UIBarStyleBlack; toolBar.clipsToBounds = YES; _cont …

    iOS开发, macOS开发 继续阅读

  10. Linux 终端 Bash 常用快捷键介绍及经验

    bash及其特性 bash实质上是一个可执行程序,一个用户的工作环境。 在每一个shell下可以再打开一个shell,新打开的shell可以称为子shell,每一个shell之间是相互独立的。 可以使用pstree命令查看当前shell下的子shell个数。 1. 最重要的自动补全 命令 解释 Tab 自动补全 2. 编辑跳转 命令 解释 Ctrl + A 跳转到当前行首 Ctrl + E 跳转到当前行末 Alt + F 将光标在当前行上向后移动一 …

    iOS开发, macOS开发 继续阅读