
iOS
仰望星空01
不负韶华,砥砺前行!
展开
-
Swift 之标准数字格式显示
NumberFormatter序数形式: 1,234,56th货币形式: USD1,234,567 1,234,567.00 US dollars $1,234,567.00会计计数: $1,234,567科学计数:1.234567E6朗读形式:one million two hundred thirty-four thousand five hundred sixty-seven百分数形式:100%原创 2019-10-24 13:49:24 · 3519 阅读 · 0 评论 -
iOS Cocoapods创建自己的Cocoapods公共库组件
iOS Cocoapods创建自己的Cocoapods公共库组件注册CocoaPods账户信息注册CocoaPods账户信息打开终端,创建一个开源pod库,需要注册CocoaPodspod trunk register 邮箱地址 '用户名' --verbose...原创 2019-07-24 11:27:12 · 514 阅读 · 0 评论 -
pod 组件验证常见错误
执行pod lib lint --allow-warnings 报错:- ERROR | [iOS] unknown: Encountered an unknown error (Could not find a `ios` simulator (valid values: com.apple.coresimulator.simruntime.ios-12-2, com.apple.coresi...原创 2019-07-22 17:14:33 · 2430 阅读 · 0 评论 -
iOS底层原理之KVO本质
面试中常会问道:iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)如何手动触发KVO什么是KVO首先需要了解KVO基本使用,KVO的全称 Key-Value Observing,俗称“键值观察”,我们可以用于监听某个对象属性值的改变。如下代码://// ViewController.m// KVO原理探索// Created by just so so o...原创 2019-08-26 08:18:37 · 592 阅读 · 0 评论 -
iOS NSTimer 循环引用
高逼格解决NSTimer定时器中循环引用原创 2019-08-22 13:50:47 · 722 阅读 · 0 评论 -
iOS APP启动优化
APP启动优化App启动过程什么是image(镜像)pre-main阶段main()阶段pre-main阶段的过程和优化项1、 Load dylibsRebase/Bindobjc setupInitializersmain()阶段的优化项启动耗时的测量pre-main阶段:main()阶段测量App启动过程iOS应用的启动可以分为pre-main阶段和main()阶段,其中系统做的事情一次是...原创 2019-09-05 15:23:02 · 556 阅读 · 0 评论 -
iOS 13适配汇总
随着iPhone 11的发布,iOS 13适配也提上了日程,接下来就开发中升级iOS13的手机可能出现的问题Xcode: 11.0iOS : 13.0UIViewController 模态弹出界面viewController.present(presentVC, animated: true, completion: nil)在调用模态弹出视图,会发现弹出的界面没有全屏。如图通过多次...原创 2019-09-15 14:53:26 · 10064 阅读 · 0 评论 -
iOS性能优化之屏幕篇
屏幕成像在屏幕成像的过程中,CPU和GPU起着至关重要的过程。CPU(Central Processing Unit,中央处理器)负责对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics)等GPU(Graphics Processing Unit,图形处理器)负责渲染工作iOS双缓冲机制,有前帧缓存、后帧缓存什...原创 2019-09-17 16:07:51 · 564 阅读 · 0 评论 -
iOS 可自定义AlertView
简单易用、可定制AlertView;Powerful, Easy to use alert view or popup view on controller and window,custom view and animation,for swift,support iphone, ipad原创 2019-09-26 15:37:44 · 1251 阅读 · 0 评论 -
FPSLabel 的使用(检测tableView的流畅度)
iOS FPSLabel检测tableView的流畅度原创 2019-09-30 15:16:57 · 587 阅读 · 0 评论 -
Swift Extention
YYExtentions链接地址:https://github.com/YaoChengZhen/YYExtentions.gitInstallationYYExtentions is available through CocoaPods. To installit, simply add the following line to your Podfile:source 'https...原创 2019-07-24 08:55:30 · 257 阅读 · 0 评论 -
修改cocoapods的trunk名称
小贴士:注册CocoaPods账户信息:使用如下命令pod trunk register 邮箱地址 '用户名' --verbose命令行执行获取密码grep -A2 'trunk.cocoapods.org' ~/.netrc会得到如下结果:machine trunk.cocoapods.org login yao@qq.com password 6c339fa4de26...转载 2019-07-23 21:58:36 · 540 阅读 · 0 评论 -
设置tableHeaderView中使用xib格式页面布局错乱问题
tableHeaderView第一:xib文件作为headerView的时候:frame一定要在layoutsubviews方法中,把填写的frame,重新赋值不然会造成页面显示一屏幕的bug;第二:iOS 11.0以上机型,必须要在初始化,再用View 包裹:在设置bgView.addsubView( xibView)tableview.tableHeaderView = bgView...原创 2019-06-21 09:50:34 · 696 阅读 · 1 评论 -
iOS 自动打包App Store脚本
iOS 自动打包App Store脚本自动化打包方案:xcodebuild打包详解完整的shell脚本,里面还包含上传蒲公英的内容操作说明自动化打包方案:xcodebuild打包详解使用xcodebuild自动化打包给就是用命令行来控制Xcode进行编译打包xcodebuild打包有3种,一种是adHoc测试打包ipa;一个是上传AppStore打包;一个企业级别打包。具体区别请看下面的步...原创 2019-06-21 10:25:13 · 547 阅读 · 0 评论 -
iOS SDK开发步骤
打开xcode ->选择Framework&Library中的Cocoa Touch Static Library如下图:点击Next:取工程名:YDemoSDK(根据自己需求)完成后有这几个文件删除没有必要的.m文件添加UI这里:这里以alertView 为例如图接下来就是在YDemoSDK.h 文件中引入#import “CustomIOSAl...原创 2019-06-21 10:56:19 · 8289 阅读 · 1 评论 -
UITableview优化之圆角设置
一、最简单的设置圆角 //头像圆角 icon.layer.cornerRadius = 20 icon.layer.masksToBounds = true这种设置方法会造成离屏渲染什么是离屏渲染GPU渲染机制CPU 计算好显示内容提交到 GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按照 VSync 信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显...原创 2019-06-26 16:10:21 · 2180 阅读 · 0 评论 -
UITableview优化之Cell高度计算
cell高度一般分两种一、定高tableView.rowHeight = 80相当于方法指定了所有cell高度都是80对于定高cell,直接采用上面方式给定高度,不需要实现代理中 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) 以节省不必要的计算和开销。二、动态高度代理方法实现后,...原创 2019-06-26 16:37:21 · 633 阅读 · 0 评论 -
Xcode No account for team "". Add a new account in the Accounts preference pane or verify that your
问题描述当我们在Git上下载下来一些第三方库的时候,将签名改成自己的开发者账号仍然出现类似:Showing All Messages No account for team "8PC4X7QUY9". Add a new account in the Accounts preference pane or verify that your accounts have valid creden...转载 2019-06-24 17:15:03 · 15624 阅读 · 0 评论 -
iOS 调用系统分享
调用系统分享框架Social.framework利用系统分享内容如下自定义UIActivity框架Social.framework导入框架Social.framework,集成系统分享时候我们会用到UIActivityViewController这个类的。利用系统分享内容如下fileprivate func systemShareAlert() { let url = U...原创 2019-07-04 12:37:20 · 2380 阅读 · 0 评论 -
iOS Runtime几种常见的应用场景
iOS Runtime几种常见的应用场景OC的动态性场景一:防止button重复事件点击场景二:访问NSArray越界问题场景三:快速接手新工程ViewController中添加HookOC的动态性OC 的函数是属于动态调用,在编译的时候是不能决定真正去调用那个函数的,只有在运行的时候才能决定去调用哪一个函数 ,在编译阶段,OC可以调用任何的函数,即使这个函数没有实现,只要声明过也就不会报错。...原创 2019-07-15 11:11:01 · 1597 阅读 · 0 评论 -
iOS 文件预览(PDF、Excel、World等)之QuickLook框架
iOS 文件预览QuickLookQuickLook一、简介QuickLook库可以让我们的App在iPhone/iPad中直接预览各个文件了。官方的开发文档中说明其支持的文件类型有:iWork documentsMicrosoft Office documents (Office ‘97 and newer)Rich Text Format (RTF) documentsPDF ...原创 2019-07-01 14:18:01 · 5930 阅读 · 0 评论 -
Swift之高阶函数map、flatMap、filter、reduce
Swift之高阶函数map、flatMap、filter、reducemapflatMap与map不同之处filerreduce有关Swift.map高阶函数的应用 Swift相比于Objective-C又一个重要的优点,它对函数式编程提供了很好的支持,Swift提供了map、filter、reduce这三个高阶函数作为对容器的支持。map解释:可以对数组中的每一个元素做一次处理var ...原创 2019-07-15 17:43:20 · 698 阅读 · 0 评论 -
Swift 优雅的协议扩展
Swift 优雅协议扩展仿view.snp.xxx的调用形式如何实现核心代码完整代码如下:仿view.snp.xxx的调用形式先看调用效果:“123456”.yy_Str.MD5ForLower32Bate()"123456".yy_Str.MD5ForLower32Bate()//类似:view.snp.xxx为什么要这么做呢?好处在哪呢?降低耦合度:传统的写法,直接在类别中添加...原创 2019-07-18 16:14:16 · 1070 阅读 · 2 评论 -
UISearchBar中搜索框中右边叉号按钮事件
UISearchBarUISearchBar继承于UIView,我们可以像创建View那样创建searchBar,他是iOS系统提供给我们的搜索框;//改变左边搜索图标坐标位置。后面的占位符苹果已经做好约束总是跟随在搜索原创 2019-06-21 09:25:05 · 2489 阅读 · 0 评论