自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ioslingbing的博客

UICollectionView的高度自适应

  • 博客(11)
  • 收藏
  • 关注

原创 iOS PDF文件生成

1.把scrollView上面的内容生成PDF文件,代码如下:(NSString *)createPDF {NSDate*printTime = [NSDatedate];NSString*fileName = [NSStringstringWithFormat:@"%@%@%@.pdf",self.user.real_name,self.title, [self.dateHourMinuteFormatterstringFromDate:printTime]];NSURL*storeURL =

2021-04-18 15:15:50 707

原创 iOS RunLoop

RunLoop 的应用场景:RunLoop在系统中应用1.自动释放池。2.NSTimer3.PerformSelecter4.事件响应5.UI更新6.GCD7.手势识别应用RunLoop应用场景8.子线程常驻内存,保持子线程一直处理事件(AF)9.AsyncDisplayKit(保持界面流畅性的框架)10.UIImageView 延迟加载图片11.RunLoop与NSTimer的结合12.RunLoop与NSURLConnection的结合特性:主线程的RunLoop在应用启

2021-04-18 15:15:05 101

原创 iOS Runtime

Runtime 简介:Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的。与Runtime交互Objc 从三种不同的层级上与 Runtime 系统进行交互,分别是通过 Objective-C 源代码,通过 Foundation 框架的NSObject类定义的方法,通过对 runtime 函数的直接调用。Runtime 是什么:1.运行时(Runtime)是指将数据类型的确定由编译时推迟到了运行时。2.Run

2021-04-18 15:14:20 147

原创 谈谈你对KVO和KVC的理解

KVOKVO(Key-Value-Observing):翻译成键值观察。它是一种观察者模式的衍生。其基本思想是,对目标对象的某属性添加观察,当该属性发生变化时,通过触发观察者对象实现的KVO接口方法,来自动的通知观察者。KVO是观察者模式的另一实现,使用了isa混写(isa-swizzling)来实现KVO。KVO底层实现:当某个类的对象第一次被观察时,系统就会在运行时动态地创建该类的一个派生类,在这个派生类中重写原类中被观察属性的setter方法,派生类在被重写的setter方法实现真正的通知机制

2021-04-18 15:12:53 551

原创 性能优化、内存优化以及内存泄漏检测

内存优化主要分为三点:1.减少内存泄露2.降低内存使用峰值3.减少内存异常引用性能优化、内存优化常用方法1.正确的使用 reuseIdentifier2.尽量把views设置为透明3.避免过于庞大的XIB4.不要阻塞主线程5.在Image Views中调整图片大小6.选择正确的CollectionView 或 TableView7.打开gzip压缩8.懒加载9.Cache, Cache, 还是Cache10.权衡渲染方法11.处理内存警告12.复用大开销对象13.使用Spr

2021-04-18 15:11:01 139

原创 App前后台切换,会发生什么,系统哪些方法会被调用,ViewController哪些方法会被调用

进入后台:(void)applicationWillResignActive:(UIApplication*)application(void)applicationDidEnterBackground:(UIApplication*)application进入前台:(void)applicationWillEnterForeground:(UIApplication*)application(void)applicationDidBecomeActive:(UIApplica

2021-04-18 15:07:49 576

原创 iOS APNS推送如何区分设备,如何将设备的信息传给Apple,你上传的时机是怎样的,猜想这个设备信息是如何上传的。

iOS APNS推送如何区分设备,如何将设备的信息传给Apple,你上传的时机是怎样的,猜想这个设备信息是如何上传的。1.区分设备通过registerForRemoteNotifications、didRegisterForRemoteNotificationsWithDeviceToken:获取deviceToken区分设备;2.设备信息传递给ApplePost请求;Use HTTP/2 and TLS 1.2 or later to establish a connection between

2021-04-18 15:06:17 160

原创 iOS 蓝牙固件升级

升级介绍蓝牙固件升级是使用手机给固件进行版本升级,以达到修复bug或者添加新功能的作用。升级的大概流程是:首先,当蓝牙固件需要升级时,由嵌入式开发人员提供新的固件,由服务器管理人员将固件放到服务器上,此时,用户打开手机APP的时候会检测到服务器有更新,请求最新的蓝牙固件,确认更新后,手机会从服务器下载固件。下载完毕后,APP会读取固件内容,并根据升级协议将内容传到蓝牙固件里,完成升级。DFU = Device Firmware Update (设备固件更新)OTA = Over The Air (空中

2021-04-18 15:05:09 1240

原创 iOS 蓝牙

1.蓝牙的基础知识iOS中开发蓝牙常用的系统库是<CoreBluetooth/CoreBluetooth.h>。2.蓝牙外设必需为4.0及以上(2.0需要MFI认证),否则无法进行开发,蓝牙4.0设施由于低耗电,所以也叫做BLE。CoreBluetooth框架的核心其实是俩东西3.1 Peripheral3.2 Central服务和特征(service characteristic):简而言之,外部蓝牙中它有若干个服务service(服务你能了解为蓝牙所拥有的可以力),而

2021-04-18 15:03:30 684

原创 iOS hex文件转bin文件

hex文件转换bin文件有两种方式:1.通过软件的方式,软件的方式我是通过软件J-Flash来转换的。具体操作流程如下:(1)打开J-Flash选择Create a new project。(2)把hex文件拖入J-Flash 。(3)找到hex文件对应的结束的最后一位的位置。(4)选择Save data file as 保存类型选bin类型,然后点击保存之后弹出Enter address range框 start address 保持不变,End address 输入你想要转换文件的结束地址,然

2021-04-18 14:56:40 647

原创 UICollectionView的高度自适应

estimatedItemSize是iOS 8中苹果最新推出的黑魔法,可以让CollectionView中也能让 cell 自适应内容大小,达到自动适应高度的预期效果!UICollectionView的高度自适应的原理:1.CollectionView根据 layout 的 estimatedItemSize 算出估计的 contentSize,有了 contentSize C

2017-04-14 11:13:08 26049

空空如也

空空如也

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

TA关注的人

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