自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS UITabBar在显示和隐藏的过程中层级变化

UITabBar在显示和隐藏的过程中层级是变化的 。在推出控制器隐藏tabBar的时候,tabBar 是从UITabBarController的view上先移除然后加在一个临时创建的view上,然后实现从又到左的抽屉动画,动画结束并且延时几百毫秒后在加在UITabBarController的view上。退回一级页面也是一样的道理,先加在临时view上,然后从左到右动画结束 在延迟几百毫秒然后再加载...

2019-12-19 16:31:39 557

原创 APP启动时间优化

一般而言,大家把iOS冷启动的过程定义为:从用户点击App图标开始到appDelegate didFinishLaunching方法执行完成为止。这个过程主要分为两个阶段:T1:main()函数之前,即操作系统加载App可执行文件到内存,然后执行一系列的加载&链接等工作,最后执行至App的main()函数。 T2:main()函数之后,即从main()开始,到appDelega...

2019-10-23 17:39:13 21577

原创 Swift 自定义tabBar 实现放大的按键Tab点击

在Swift 开发过程中遇到要自定义的tabBar 中间的按键要比其他的大 并且点击上边沿部分还要有响应时间。于是开发了一版pod库供大家一起使用。展示效果图片github地址:MCSwiftTabBarpod库文件包括MCBaseController和MCTabController1.导入自己工程后新建自己的TabController 继承于MCTabControlle...

2019-10-17 17:09:40 702

原创 Python 读取Excel文件创建Xcode类 小demo

# -*- coding: utf-8 -*- import xlrd  file_path = r"/Users/****/Desktop/*****.xlsx" file_path = file_path.decode('utf-8') data = xlrd.open_workbook(file_path)  sheet_path = "工作表...

2019-01-14 14:57:58 253

原创 pod创建公有库、私有库

随着时间、业务的不断繁杂和增多。开发的工程也会逐渐的无序和强耦合。通过pods封装好各种库进行有效的节藕和组合是插件化的有效方法。下面介绍一下基础的通过pod怎样创建公有的和私有的库。为什么要使用Cocoapods来管理第三方库呢?传统使用第三方库的劣势1、使用一个第三方SDK,需要在工程里面添加一堆配置,少添加一步配置就会报一大堆错误。这个时候为了排查少了哪一个步骤,只能从头开始重做一遍,太浪费...

2018-06-29 09:35:04 5431

转载 ios https 单项认证 双向认证 以及服务端配置

单项认证:客户端APP包里保存一份证书 用于校验服务端证书是否合法双向认证:单项认证以外,   客户端(不是app,这里指系统)要拥有一份证书 用于传给服务端用于校验客户端证书是否合法分两方面讲解:一 客户端配置  二 服务端配置一 客户端配置。单向认证流程:客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服...

2018-03-08 15:13:12 6171

原创 ios 跳转系统设置界面

iOS开发中有时候有这样的需求:当用户设置不允许访问照片、麦克风和相机等系统权限的时候,这时需要直接跳转到系统的隐私界面进行设置。判断是否开启权限前面已经说过,我们需要在用户不允许访问的时候跳转,那么首先我们就要判断一些是否已经开启系统相机权限了。照片权限检测需要:#import <AssetsLibrary/AssetsLibrary.h> //导入此类和AssetsLibrary....

2018-02-14 10:15:09 596

原创 iOS 应用国际化

                                                                                 APP开发到一定的阶段总会有一个质的升华,一些细节也会体现一个应用的品味和气场,当你涉及应用的国际化的时候说明你的APP已经进入一个更好的档次了(此处偷笑)。所谓国际化就是APP支持不同的语言的可阅读可适用性。废话不缩,下面介绍一下ios...

2018-02-14 08:59:40 257

转载 Swift 和 Vapor 构建区块链服务器

最近火热的区块链 小编也不禁追赶一下潮流   无所谓什么开发语言 设计思路大同小异。下面讨论了如何用 Swift 语言实现基本的区块链。在这篇文章里会使用服务器端 Swift 框架 Vapor 在云端实现区块链。通过 HTTP 协议来构建区块链 Web API,使用不同的路由来提供必要的功能。阅读本文需要在电脑上安装 Vapor 框架(这个框架很牛逼 国外服务器不是用这个就是Python),还需要...

2018-02-13 16:20:03 1100

转载 IOS 事件响应及传递过程详解

前言:按照时间顺序,事件的生命周期是这样的:  事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应)其中重点和难点是:  1.如何寻找最合适的view  2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现

2018-01-18 17:34:41 1232

原创 ios 单例重新初始化方法

众所周知 ios中单例在APP运行周期内只走一次 所以单利中存储的数据都会一直伴随的一次APP生命周期。 但是随着项目业务的不断复杂 有可能会有需要单例要重新初始化更换数据。下面介绍一下怎样实现。static Model *_instance;static dispatch_once_t token;+ (Model *)instance

2018-01-04 14:19:51 3755

转载 iOS 拦截崩溃处理

ios app一旦提交就很难在对源进行线上修改 所以关键就是少出错少崩溃。 下面介绍一下崩溃拦截处理 可以用于崩溃日记收集 和 提高用户体验首先在AppDelegate.m的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions ;

2017-12-25 16:01:23 2250

转载 iOS RunTime 详解

什么是Runtime我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething];会被转化成objc_msgSend(target, @selector(doSomething));。OC中一切都被设计成了对象,我们都知道一个类被初始化成一个实例,这个实例是一个对象。实际上一个类本质上也是一个对象,在runtime中用结构体表示。相关的定

2017-12-12 17:23:01 321

转载 iOS RunLoop详解

1. RunLoop简介1.1 什么是RunLoop?可以理解为字面意思:Run表示运行,Loop表示循环。结合在一起就是运行的循环的意思。哈哈,我更愿意翻译为『跑圈』。直观理解就像是不停的跑圈。RunLoop实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持续运行;而且在没有事件处理的时

2017-12-11 16:53:05 354

转载 ios 多线程之NSOperation

1. NSOperation简介NSOperation是苹果提供给我们的一套多线程解决方案。实际上NSOperation是基于GCD更高一层的封装,但是比GCD更简单易用、代码可读性也更高。NSOperation需要配合NSOperationQueue来实现多线程。因为默认情况下,NSOperation单独使用时系统同步执行操作,并没有开辟新线程的能力,只有配合NSOperationQueue

2017-12-11 14:47:47 281

转载 ios GCD 详解

1. GCD简介Grand Central Dispatch (GCD) 是Apple开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并行任务。在Mac OS X 10.6雪豹中首次推出,也可在IOS 4及以上版本使用。为什么要用GCD呢?因为GCD有很多好处啊,具体如下:GCD可用于多核的并行运算GC

2017-12-11 14:25:36 301

转载 ios 图片尺寸设计和原理

初代iPhone2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素。下文也是按照宽度,高度的顺序排列。这个分辨率一直到iPhone 3GS也保持不变。那时编写iOS的App(应用程序),只支持绝对定位。比如一个按钮(x, y, width, height) = (20, 30, 40, 50),就表示它的宽度是40像素,高度是50像素,放在

2017-11-01 18:31:51 841

原创 iOS 浮点数格式字符串比较大小 精度问题

计算机中float的存储是不精确的。但是真正开发实践的时候,或许只有出问题了,才会醒悟:哦,原来是这样。这个问题在高大上的OC上同样存在,稍不注意就会出现问题。尤其是涉及金融的计算比较数据方面显得格外重要。iOS开发中,请求后台的接口,然后转化为模型对象,最终转化为NSString对象,然后控件显示出来。这一切都是那么的自然那么的熟悉。但是如果服务器返回的时浮点数格式的字符串 并且客户端还

2017-06-08 11:03:09 8041 1

空空如也

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

TA关注的人

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