自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 【ios学习】Swift 4.2新特性

Swift 4.2是Swift 4的第二次小更新,随之带来了很多很棒的改进-这使得今年将成为Swift的重要一年,并且更加确认这个社区驱动的Swift演变进程正在让一个伟大的语言变得更好。这次我们获得了一些特性比如enum case 数组,warning与error编译指令,动态成员查找等等,这些都是Swift 4.1新特性(详见我的文章what's new in Swift 4.1)之外新增加的...

2018-04-29 14:02:44 406

转载 iOS开发笔记---- 键盘、静态库、动画、Crash定位

前言分享开发中遇到的问题,和相关的一些思考。iOS11键盘问题功能背景:弹出键盘时,如果有输入框的话,需要输入框的位置跟随键盘大小而变动。问题描述:当快速切换键盘之后,容易出现输入框的位置没有紧贴键盘,如下:(以简书键盘为例)iPhone 7 Plus,iOS 11.1.2,简书相关实现:输入框监听系统的UIKeyboardWillShowNotification和UIKeyboardWillHi...

2018-04-28 12:10:01 331

转载 iOS 多国语言本地化与App内语言切换(Swift)

前言语言本地化 大家肯定都多少都听过,今天我要分享的是快速实现语言本地化,与App内语言切换核心内容主要是三个部分storyboard/xib本地化纯代码本地化语言切换准备工作项目中添加语言storyboard/xib本地化storyboard/xib做本地化Xcode基本上是一键搞定了。很简单只要勾勾选选就可以了这边只涉及到一个更新的问题通过 ibtools命令 可以使storyboard/xi...

2018-04-27 09:09:44 1419

转载 【ios】Runtime源码阅读分享之对象的本质,了解isa

引言我们都知道,Runtime 是 Objective-C 这门动态语言的核心,只有理解了它,我们才能够更好的理解 Objective-C 到底是如何工作的,在编程时,也会更加得心应手。由于时间和精力有限,此次我主要想从以下几方面来进行 Runtime 源码的阅读,日后将会逐步完善。由于总体篇幅较长,所以我将会每一部分拆分成一篇文章来具体分析。目录一、对象的本质,了解 isa二、对象的生命周期三、...

2018-04-26 13:21:04 238

转载 【ios学习】OneClock的翻页时钟效果是如何实现的

OneClock目前的三个表盘中用户最喜欢的是翻页时钟。翻页效果是表盘的核心,也是我花时间调试最久的细节。经过7次的产品迭代,终于调整到了一个合适的效果。实现这个动效的方法只需用到CABasicAnimation中的以X轴旋转即可。CABasicAnimation实际上还有很多参数,比如大小、透明度、背景颜色等,用这个方法做很多动画都是可以实现的。制作翻页时钟的效果,实际上需要解决3个问题:1.只...

2018-04-25 10:24:59 1975

转载 iOS图片浏览器(功能强大/性能优越)

支持 cocopods,功能完善,性能不错,代码质量尚可,喜欢的朋友可以给个小星星。为了适应组件的自定义需求,代码和逻辑有点多,所以尽量不要修改源码。写在前面本文讲解 YBImageBrowser 的组件设计思路和部分技术实现原理,对本框架有兴趣的朋友可以看看 。行文的重点是笔者的框架设计理念、代码及体验优化的思考、关键技术点的实现,希望不管是老鸟还是新手看完之后都能有所收获和感悟。欢迎大家交流探...

2018-04-24 11:04:21 962

转载 【ios学习】浅谈Runtime

一、Runtime基石:Objective-C对象模型1、对象每一个对象都是类的实例, 类中保存对象的方法列表;当一个对象方法被调用时,类会首先查找它本身是否有该方法的实现,如果没有,则会向它的父类查找该方法,直到NSObject(根类);类是元类 (metaclass) 的实例;元类保存类方法列表;当一个类方法被调用时,元类会首先查找它本身是否有该类方法的实现,如果没有,则会向它的父类查找该方法...

2018-04-23 09:14:16 212

转载 【ios学习】从0开始写一个直播间的礼物系统

前段时间公司APP要对直播间的礼物系统进行改版,由于以前直播的收入不在于礼物分成,所以以前的礼物系统是很简单的一个展示而已.为适应主流直播间的礼物效果,特由此改版!1. 所有直播间的礼物系统,第一步用户看到的无外乎都是礼物的列表界面纵观主流直播间的礼物列表应该都是使用UICollectionView实现的,所以我也不例外,下面就是各种撸代码.效果如下看着效果还不错吧.但是但是我突然发现一个问题.礼...

2018-04-22 09:50:24 596

转载 iOS 封装.framework 以及使用

.framework是什么?.framework是什么?这个问题相信做iOS的都知道答案。 在我们的日常开发中,经常会用到各种已经封装好的库,比如支付宝、微信SDK等等中的库,这些库可以给我们的开发带来很大的便利。有的时候,由于工作的需要,我们需要对自己的项目进行封装,生成库,方便别人的使用。在这里就边参考好点的博客,边总结一下我们经常看到的.framework。那什么是“库”呢?“库”是共享程序...

2018-04-21 11:26:47 381

转载 iOS性能分析和优化

前言: 随着项目的扩大和功能的增多,代码没有经过严格的调试和优化,要么任性地卡顿运行,要么就低调地崩溃,最后导致用户用着不开心,开发者也比较烦恼。为了突破这个这个关卡其实并不难,首先开发者只要在Xcode自带的监控调试工具 Instruments 上花点功夫就能够让代码顺畅运行。工欲善其事,必先利其器。Instrument对于iOS开发来说,是发现并且解决问题的一把利器。Instruments 提...

2018-04-20 16:54:12 326

转载 iOS 指纹登录(TouchID)集成方案

TouchID指纹识别是iPhone 5S设备中增加的一项重大功能.苹果的后续移动设备也相继添加了指纹功能,在实际使用中还是相当方便的,比如快捷登录,快捷支付等等.系统提供了相应框架,使用起来还是比较方便的.使用LAContext对象即可完成指纹识别,提高用户体验.TouchID提示:指纹识别必须用真机测试,并且在iOS8以上系统.TouchID API使用1.添加头文件1#import2.判断系...

2018-04-19 09:55:22 546

转载 iOS蓝牙开发CoreBlueTooth库核心方法使用介绍

一、引言蓝牙是设备近距离通信的一种方便手段,在iPhone引入蓝牙4.0后,设备之间的通讯变得更加简单。相关的蓝牙操作由专门的 CoreBluetooth.framework进行统一管理。通过蓝牙进行通讯交互分为两方,一方为中心设备central,一方为外设 peripheral,外设通过广播的方式向外发送信息,中心设备检索到外设发的广播信息,可以进行配对连接,进而进行数据交互。这里我写了一个轻量...

2018-04-18 12:41:40 454

转载 iOS面试知识点整理

一、基础知识点设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情。1). MVC模式:Model View Control,把模型 视图 控制器 层进行解耦合编写。2). MVVM模式:Model View ViewModel 把模型 视图 业务逻辑 层进行解耦和编写。3). 单例模式:通过static关键词,声明全局变量。在整个进...

2018-04-17 20:12:45 373

转载 iOS 性能优化总结

卡顿产生的原因在VSync信号到来后,系统图形服务会通过CADisplayLink等机制通知App,App主线程开始在CPU中计算显示内容,比如视图的创建、布局计算、图片解码、文本绘制等。随后CPU会将计算好的内容提交到GPU去,由GPU进行变换、合成、渲染。随后GPU会把渲染结果提交到帧缓冲区去,等待下一次VSync信号到来时显示到屏幕上。由于垂直同步的机制,如果在一个VSync时间内,CPU或...

2018-04-15 09:22:31 327

转载 Weex-iOS源码-CSS Layout 分析

Layout 介绍Layout是FaceBook开源的一个跨端CSS布局引擎。 Weex 引入了Layout 在原来的基础上进行命名空间上的调整, Layout在Weex中主要是作为一个CSS参数的容器,对CSS的参数的管理。Layout源码Layout源码由C语言编写,主要包含可以存储CSS参数的结构体、枚举,以及一些相关的C函数。 1、结构体、枚举 Layout.h文件中声明了对应于CSS属性...

2018-04-14 16:42:47 133

转载 [iOS]5 分钟实现抖音 APP

首先我们来分析一下这个界面,这是个竖向滑动的 scrollView,我们可以在 scrollView 上添加 3 个 view,然后将 scrollView 滚到中间红色 view 的位置,以后每次用户滑动完成以后,都将 scrollView 重置到这个状态,这样就能实现抖音那种无限滑动的效果。然后,每次用户滑动完就开始播放视频,这样我们就能实现抖音这个效果了。有了思路,接下来开始写代码。- (v...

2018-04-13 11:48:36 2763

转载 Weex-iOS源码-CSS Layout 分析

Layout 介绍Layout是FaceBook开源的一个跨端CSS布局引擎。 Weex 引入了Layout 在原来的基础上进行命名空间上的调整, Layout在Weex中主要是作为一个CSS参数的容器,对CSS的参数的管理。Layout源码Layout源码由C语言编写,主要包含可以存储CSS参数的结构体、枚举,以及一些相关的C函数。 1、结构体、枚举 Layout.h文件中声明了对应于CSS属性...

2018-04-12 20:46:45 164

转载 iOS App 连续闪退时如何上报 crash 日志

为保障线上 App 的用户体验,我们一般都会对线上 App 的 crash 率做实时监控,一旦检测到 spike,可以即刻调查原因,但这一切的前提是 crash 日志能够准确上报。crash 日志上报有两个难点:crash handler 安装之前的代码要绝对稳定如果日志采集器还没成功启动就 crash 了,自然什么日志也无法采集到。这一点并没有太多技巧可言,只能严格限制 handler 启动之前...

2018-04-11 12:12:42 1647

转载 iOS性能优化系列篇之“优化总体原则”

笔者由于在iOS开发过程中做过一些优化的工作,对iOS性能优化有一些粗浅的认识,一直想把自己这些经验,简单总结一下。于是最近在工作闲暇时间,准备针对iOS开发的性能优化写一系列文章。作为整个系列的第一篇,我打算针对iOS的优化中的一些总体原则做一些总结。因为我觉得无论列表流畅度优化也好、启动时间优化也好还是说其他方面的优化,都有一些共性的原则,只有掌握了这些总体性的原则,才能够更好的做优化,给我们...

2018-04-10 12:33:26 573 1

转载 【iOS学习】UITableView占位图的低耦合性设计

缘由基于面向对象的开发原则中的迪米特法则:一个软件实体应当尽可能少的与其他实体发生相互作用;为了降低列表无数据占位图的使用成本及代码耦合性,对网上现用的一些解决方案加以优化;核心针对基于runtime替换reloadData方法的相关,这里就不做多阐述了,本文主要讨论以下几个问题:1.需要显示占位图的情况;2.tableView初次系统调用reloadData方法的干扰排除最优方案;3.网络因服务...

2018-04-09 12:23:48 431

转载 【iOS学习】Macbook外接2k显示器开启hidpi的方法

一、前言:大家平时用macbook开发的时候一般都喜欢外接一个显示器开发吧?这里我用了一台2k的显示器,我们要开启hidpi模式。你们会问到为什么要开启hidpi模式呢?我的2k显示器是2560*1440分别率,如果采用默认的设置,那么在显示器上面的字会特别的小。如果我们开启显示器的hidpi模式就类似于macbook的retina模式,那么就会在图像大小不变的情况下,变的特别清晰。我在升级最新的...

2018-04-08 12:18:26 7027 1

转载 iOS架构:AOP实现局部解耦

一、写在前面前些时间听朋友说了一个话题,利用 AOP 解耦细节业务,确实有趣。因为我们通常情况下说起 AOP,都会想起比如“埋点”、“method swizzing”等字眼,角度比较宏观。AOP 国内开发者喜欢称之为面向切面编程,其作为面向对象编程的一种补充,在实际业务场景中发挥着巨大作用。二、为什么使用 AOP面向切面编程,也可以理解为面向功能面编程,将某一特定的功能视为一个切面,不但可以复用代...

2018-04-06 12:59:35 254

转载 iOS学习之入门组件化

写在前面组件化是近年来比较火的一个概念,现在很多公司的 app 包含的内容和模块越来越多,代码的维护和迭代也会产生很大的困难,每个模块各司其职,并且可以做到很好的复用。当我们的工程越来越大,而我们想要测试某一个部分的功能时,就会产生很多不必要的额外工作,这时,我们想到了将整个 app 拆分成很多组件,每个组件可以单独编译运行进行测试,并且当我们参与项目的人员越来越多时,代码量越来越大时,单工程代码...

2018-04-05 16:55:34 180

转载 【iOS学习】为设置中心添加常用功能

在我们开发所有的应用中,通常会提供包含多项功能的设置中心。这些功能可以包括,给用户推荐自己的其他作品、邀请用户好评、提供反馈通道、邀请用户分享应用、打开官网或某些其他地址。这些功能虽然用户使用频率不高,但对于应用的设置中心是必备的。1.跳转到AppStore,邀请好评或推荐其他应用2.提供系统邮件反馈通道3.调取系统分享功能分享应用4.在应用内打开网页,实现官方网址、应用更新说明或打开其他网址通常...

2018-04-04 21:14:59 225

转载 iOS文件内存映射详解(mmap)

文件内存映射(mmap)之前看过很多文章提及到,但是都没有写iOS中具体的实现,只是都说对于大文件读写效率比较高等。所以作者就专门研究了以下mmap技术,并且实现了一下mmap文件映射是将文件的磁盘扇区映射到进程的虚拟内存空间的过程。一旦被映射,您的应用程序就会访问这个文件,就好像它完全驻留在内存中一样(不占用内存,使用的是虚拟内存)。当您从映射的文件指针读取数据时,将在适当的数据中的内核页面并将...

2018-04-03 12:45:51 1167

转载 阿里腾讯头条美团等iOS面试总结

前言最近春招一直在紧张的面试中,现在已经拿了头条offer,所以也没那么紧张了。决定把面试题拿出来给大家分享一下,欢迎大家来一起探讨。现在先简单的分享一下面试题。美团一面记不太清了23333主要问项目的一些技术点如何让一个label靠左,一个label靠右,然后右边的label能够完全显示算法奇数排在前面,偶数排在后面智力题,一个骑手送餐,ABCD商店,送给abcd四个人kvo的实现原理消息调用的...

2018-04-02 12:21:32 243

转载 【iOS】巧用 LLVM 特性: Objective-C Class Properties 解耦

前言Emmmmm... Objective-C Class Properties 早在 WWDC 2016 中就已经公示,给 Objective-C 加入这个特性主要是为了与 Swift 类型属性相互操作。官方是这么说明的:Interoperate with Swift type properties.嘛~ 虽然是为了配合 Swift 加入的新特性,不过聊胜于无哈!Note: 值得一提的是 Obj...

2018-04-01 15:03:08 293

空空如也

空空如也

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

TA关注的人

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