10 Rolei_kezhu

尚未进行身份认证

学海无涯

等级
TA的排名 4k+

UIView 绘制渲染机制 与优化方式

APP页面优化对小编来说一直是难题,最近一直在不断的学习和总结,发现APP页面优化说到底离不开view的绘制和渲染机制。网上有很多精彩的博客,小编借鉴之前N多大牛研究成果,同时结合自己遇到的一些问题,整理了这篇博客。尝试和大家一起探讨以下问题:view绘制渲染机制和runloop什么关系? 所谓的列表卡顿,到底是什么原因引发的? 我们经常在drawrect方法里绘制代

2017-07-31 02:32:58

IOS下的 NSTimer与Run loop Modes

一.NSRunLoop在Cocoa中,每个线程(NSThread)对象中内部都有一个runloop(NSRunLoop)对象用来循环处理输入事件,处理的事件包括两类,一是来自Inputsources的异步事件,一是来自Timersources的同步事件;runLoop在处理输入事件时会产生通知,可以通过CoreFoundation向线程中添加run-loopobse

2017-07-31 01:47:21

重写了loadView,一般用在什么地方

/***如果不实现loadView方法,控制器默认有一个loadView方法,默认系统怎么加载控制器的view呢,先去storyboard里面找,没有找到再去与控制器名称相同的xib里面找,没有找到,在去名称相同去掉Controller的xib里面找,还没有找到,程序员也没有重写loadView方法,那么系统默认会创建一个view,颜色是clearColor,如果实现了lo

2017-04-17 14:20:02

ARC下 打印引用计数 和 OC对象与CF对象之间的桥接(bridge)

1、打印引用计数     __strong__typeof(weakSelf)strongSelf=weakSelf;    printf("retaincount=%ld\n",CFGetRetainCount((__bridgeCFTypeRef)(strongSelf)));2、__bridge的使用在开发iOS应用程序时我们有时

2017-04-14 16:57:04

iOS QRcode识别及相册图片二维码读取识别

对二维码的处理及系统原生API扫描、Zbar扫描和Zing扫描比较iOS原生API系统扫描的效率是最高,反正包括各种你见过的没见过的码,但是有一点我不是很清楚iOS7扫描二维码可以,但从相册照片读取二维码苹果不支持,必须是iOS8+。https://github.com/yannickl/QRCodeReaderViewControllerhttps://githu

2017-03-30 18:33:13

UIWebview使用缓存并且保证实时性(iOS web资源缓存解决方案、异步后台更新。离线缓存)

webview缓存策略的介绍使用webview加载页面的时候,最理想的情况是:资源文件没有更新,就只加载缓存文件。如果有更新,则第一时间使用新的文件。UIWebview中提供的缓存策略NSURLRequestUseProtocolCachePolicy缓存策略定义在web协议实现中,用于请求特定的URL。是默认的URL缓存策略。NSURLRequestReloadI

2017-03-30 18:30:37

tableView滚动不流畅(二)

tableView滚动不流畅涉及的原因是方方面面的,其中复杂的高度计算也是令滚动卡顿的多发原因之一,如果你的cell的高度相当复杂,而且你又不得不在viewController的tableView代理方法中处理这些高度逻辑,这将导致viewController代码臃肿之余,也会成为tableView卡顿的重要原因为此wwdc有专门的一期讲述了如何合适的设置rowH

2017-03-27 15:46:35

tableview 卡顿优化 加强 iOS 里的列表滚动时的顺畅感

第一种方法:如果你想要如丝般顺滑的效果,那么:1、每次都看一下有没有能重用的cell,而不是永远重新新建(这个是UITableView的常识)2、Cell里尽量不要用UIView而是全部自己用drawRect画(之前因为iOS有bug,这样做会有性能上质的飞越。也有很多大神写过很多文章解释原理,有兴趣的自己去看看吧我就不做复制粘贴了。后来iOS也改掉了这个

2017-03-27 15:44:42

ios

在访问数据库或者文件的时候,我们可以使用SerialDispatchQueue可避免数据竞争问题dispatch_barrier_async如果我们在平常编码中,如果要保证某个属性可以线程安全的读写,如何写的:#import@interface ZYPerson:NSObject@property(nonatomic,copy)NSStrin

2017-03-20 13:56:06

IOS异步获取数据并刷新界面dispatch_async的使用方法

在ios的开发和学习中多线程编程是必须会遇到并用到的。在java中以及Android开发中,大量的后台运行,异步消息队列,基本都是运用了多线程来实现。 同样在,在ios移动开发和Android基本是很类似的一种模型。 但是很多时候,在应用开发中,我们会发现本身并没有自己编码去处理一些并发的事件,去开辟新的子线程等等。 (虽然一般的调用sdk发起一个网络请求,系统都是会默认给你新起一

2017-03-20 13:50:56

有关iOS同步

场景1:如果10个图片本身相互间是没什么联系,但是,最后一个事件需要处理计算这10个图片的总容量值。 那么可以用dispatch_group_asyncGCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。一、dispatch组(dispatchgroup)1.创建dispatch组dispatch_group_tgr

2017-03-20 11:42:19

iOS开发——创建你自己的Framework

(原文:HowtoCreateaFrameworkforiOS 作者:SamDavies译者:Mr_cyz )在上一篇教程(中译版)中,你学到了怎么样创建一个可复用的圆形旋钮控件。然而你可能不清楚怎样让其他开发者更方便地去复用它。如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实现细节,而这些实现你可能并不想

2017-03-17 10:02:29

iOS 崩溃Crash解析

iOS崩溃是让iOS开发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很重要。调试阶段是比较容易找到出问题的地方的,但是已经上线的app并分析崩溃报告就比较麻烦了。之前我总是找到一个改一个,并靠别人测试重现来找出问题的地方,这样往往比较耗费时间。而且比较难找到原因的时候每次都是到网上找各种资源搜索,解决了之后也没有认真分析原因及收集,时间长了之后就会忘记

2017-03-07 15:43:05

SVN - 主干/分支 cornerstone 参考

一个大项目在开发中可能会拆分成几个小项目,分别分去,同时共通的部分再由人做,做完后再统一合并。同时,在开发中,共通的部分修改后,其它人要保持同步。这种情况反应到SVN的分支/合并功能上,再贴切不过了。SVN可以为一个版本库中的内容(主干)建立一个分支.分支和主干完全独立,就相当于把代码再复制一份,重新添加到版本库中。但SVN提供另一个功能,就是把主干做出的修改合并到分支中,以及把分

2016-12-07 15:47:26

cornerstone创建分支与合并代码方法整理

(一)创建分支。从云办公主干(Trunk)创建一个分支,放到branches中。 步骤:选择主干中文件(JJSMOA)右击选择Branch输入分支名称(JJSMOA_V3.0.1)并选择需要存放的位置,默认的是错误的位置,需要重新选择(此处选择^/JJSMOA/branches)点击创建分支即可。 创建完成后,在branch文件夹下面就可以看到刚刚

2016-12-07 15:45:37

UIScrollView左右滚动判断

需要实现UIScrollView左右拖动加载,首先设置pageEnable=YES;然后通过Delegate实现相关方法。//将要开始拖拽,手指已经放在view上并准备拖动的那一刻-(void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{  //拖动前的起始坐标  startContentOffse

2016-07-20 10:21:55

视频有关“技术调研”

转载地址:http://www.tuicool.com/articles/3qaUnqF最近的一个项目涉及到视频播放,在一段时间的“技术调研”之后完成的项目的完整编码和测试。回过头看时,发现自己在所谓的“技术调研”阶段简直是在乱撞,毫无章法。因此总结一文于此。以备后查。脑洞开一下和拍照相仿,都是需要一个主题,也就是要表现什么。同样,调研的主体要明确。比如说,要研究视频播放。

2016-07-16 12:20:11

UIWebView 无缝切换到 WKWebView

WKWebView是IOS8新增的Web浏览视图优点: 加载速度 比UIWebView提升差不多一倍的,内存使用上面,反而还少了一半。 缺点: WKWebView不支持缓存和 NSURLProtocol拦截了我建议如果对缓存不高的页面可以使用,用户体验会提高很多。 由于项目中以前都是用UIWebVie

2016-07-16 10:49:02

FMDB源码分析

一、前言如上一章所讲,FMDB源码主要有以下几个文件组成:FMResultSet:表示FMDatabase执行查询之后的结果集。FMDatabase:表示一个单独的SQLite数据库操作实例,通过它可以对数据库进行增删改查等等操作。FMDatabaseAdditions:扩展FMDatabase类,新增对查询结果只返回单个值的方法进行简化,对表、列是否存

2016-06-14 23:19:54

JSONModel几个属性

JSONModel,Mantle这两个开源库都是用来进行封装JSON->Model的,想想看,直接向服务器发起一个请求,然后回来后,就是一个Model,直接使用,这是一个多么美好的事情。感谢GitHub的开源精神。那我们开始吧。 先说说这两个的差别。这两个使用的方法其实都差不多,详细的使用方法请直接GitHub上找,还是比较简单地。

2016-06-10 01:05:01

查看更多

勋章 我的勋章
    暂无奖章