笔记
文章平均质量分 65
我要成为技术大牛
这个作者很懒,什么都没留下…
展开
-
笔记:利用 runtime 交换方法、给分类动态添加属性
第一次写博客,有些小紧张,如有不对的地方还请大牛们及时指出,在此先感谢各位大牛了...一、利用 runtime 交换方法:1、交换方法的实现#import "UIImage+mImage.h"@implementation UIImage (mImage)+(void)load{ //load 把类加载到内存时调用,只会调用一次,在这里用 runtime 交换方法,能够确保在调用方法...原创 2018-03-16 15:41:08 · 194 阅读 · 0 评论 -
iOS 11上运行tableView向下偏移64pt或者20pt
1、在iOS 11上运行tableView向下偏移64pt或者20pt,因为iOS 11废弃了automaticallyAdjustsScrollViewInsets,而是给UIScrollView增加了contentInsetAdjustmentBehavior属性。避免这个坑的方法是要判断12345if (@available(iOS 11.0, *)) {_tableView.content...转载 2018-05-04 11:57:35 · 974 阅读 · 0 评论 -
CABasicAnimation 实现颜色渐变动画
利用 CABasicAnimation 实现颜色的渐变动画- (void)doAnimation:(BOOL)hidden{ CABasicAnimation *anim1 = [CABasicAnimation animationWithKeyPath:@"backgroundColor"]; anim1.duration = 0.2; anim1.fromValue =...原创 2018-04-19 17:56:44 · 1889 阅读 · 0 评论 -
scrollView 向下偏移64个点的问题以及 scrollView 缩放的问题
第一个问题:scrollView 向下偏移的问题原因在iOS7之前是没有这个问题的,后来苹果更新出自动适配,在控制器里增加了一个新属性automaticallyAdjustsScrollViewInsets默认为YES,通过字面意思大家应该就发现了,开启ScrollView自动调整,就是如果是在nav下的ScrollView里的子View会自动向下偏移64个点。解决不让系统自动适配,将automa...原创 2018-04-19 16:41:23 · 674 阅读 · 0 评论 -
OC与JS交互
第一种:JS给OC传值,使用JavaScriptCore.framework。oc 代码#import <JavaScriptCore/JavaScriptCore.h>- (void) webViewDidFinishLoad:(UIWebView *)webView{ JSContext *context = [webView valueForKeyPath:@"docum...原创 2018-04-12 15:43:02 · 333 阅读 · 0 评论 -
iOS开发使用 runtime 方法中的 class_copyIvarList,class_copyMethodList 方法时导致内存泄漏问题
前段时间在做公司新项目的时候使用了 runtime 的 class_copyIvarList 方法来获取类的所有属性的时候,用 leaks 检测,发现这里出现了内存泄漏。后来查了一些资料发现 class_copyIvarList 返回的对象需要手动释放。因为这些是C实现的函数,需要手动对函数返回值进行 free。具体看代码:- (void)prepareForSegue:(UIStoryboard...原创 2018-04-10 15:54:01 · 1714 阅读 · 0 评论 -
iOS开发最新最全微信第三方登录接入流程
前言:[1] iOS 微信登录注意事项1、目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用。2、对于Android应用,建议总是显示微信登录按钮,当用户手机没有安装微信客户端时,请引导用户下载安装微信客户端。3、对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已安装微信客户端(使用sdk中isWXAppIn...原创 2018-04-10 12:32:51 · 10718 阅读 · 2 评论 -
iOS蓝牙开发 —— 连接打印机发送16进制数据的问题
最近在做公司的一个蓝牙连接打印机的项目,正常的蓝牙连接打印机进行打印没问题,但是要发送一个16进制的指令来获取蓝牙设备信息时颇费了一番功夫,现做如下记录:Byte byteArray[] = {0x1d ,0x67 ,0x61};NSData *sendData = [NSData dataWithBytes:byteArray length:sizeof(byteArray)];[self....原创 2018-04-02 13:27:46 · 1319 阅读 · 0 评论 -
Xcode8.3.2 性能调优工具 Instruments 之 TimeProfiler -- 揪出页面卡顿利器的使用方法
废话不多说,直接上干货:(切记两点:1、真机调试。2、应用程序运行一定要发布配置而不是调试配置)第一步:找到 TimeProfiler (两种方法)1、打开项目2、打开项目第二步:TimeProfiler 配置第三步:找到耗时的函数从图片中可以看出最耗时的是-[ERSelectDayViewController lastButtonClick:]这个方法,不过这个方法涉及到数据库的操作,先不管。看...原创 2018-03-21 13:04:34 · 3888 阅读 · 0 评论 -
笔记:对多线程技术GCD的简单总结
提到 GCD 首先应该明白六个概念:串行队列(DISPATCH_QUEUE_SERIAL)、并行队列(DISPATCH_QUEUE_CONCURRENT)、同步执行(dispatch_sync)、异步执行(dispatch_async)、全局队列和主队列,今天主要是先总结一下前四个概念,因为全局队列和主队列比较重要,是最常用到了,放到下一章单独讲。串行队列:队列中的任务是顺序地执行,前一个任务执行...原创 2018-03-17 16:50:20 · 238 阅读 · 0 评论 -
笔记:ios性能优化(未完待续。。。)
最近在网上看了很多的内存优化方案,感觉都很 nice ,本文主要是对网上的内存优化方案做一下列表式总结,不涉及具体的内容(主要目的就是备忘):用ARC管理内存(貌似现在的新项目99%用的都是ARC了)在正确的地方使用 reuseIdentifier尽可能使 View 不透明(View不透明的情况下 GPU在计算颜色的时候只需要计算本图层的颜色,如果 View 透明,则需要把下 面图层的颜色计算在内...转载 2018-03-16 17:39:10 · 202 阅读 · 0 评论 -
单独的某个页面隐藏导航栏下面的黑线
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [self...原创 2018-08-01 10:53:09 · 531 阅读 · 0 评论