暂无个人介绍
iOS 多线程问题 查阅的大部分资料都是英文的,整理完毕之后,想翻译成中文,却发现很多名字翻译成中文很难表述清楚。 所以直接把整理好的资料发出来,大家就当顺便学习学习英语。 1. Thread Safe Vs Main Thread Safe Main Thread Safe...
iOS: 聊聊 Designated Initializer(指定初始化函数) 一、iOS的对象创建和初始化 iOS 中对象创建是分两步完成: 分配内存 初始化对象的成员变量 我们最熟悉的创建NSObject对象的过程: 苹果官方有一副图片更生动的描述了这个过程: 对象的初始化是一个很重要的过程,通常在初始化的时候我们会支持成员变量的初始状态,创建关联的对象等。
iOS 滑动性能优化 目录 一、 减少图层的Blend操作 1. UIView的背景色避免使用clearColor 2. 控件贴图避免使用带alpha的图片 3. UIImageView 使用时避免半透明 二、适当使用Rasterize 三、避免图片资源的重采样 总结 更多参考资料 一、 减少图层的Blend操作 展示半透明的view,设备会把当前图层和背景图层进行alpha叠加,这是一项很耗性能的一件事。
iPad 多任务 Spilt View & Size Class 一、多任务简介 iOS 9 以后iPad新增了多任务的支持,主要形式有三种: Slide Over (侧边快捷打开) Spilt View (多任务分屏) Picture in Picture (画中画) 1. Picture in Picture 使用系统AVKit或者AVFoundation库提供的新的API替换掉老的 MPMoviePlayerViewController, MPMoviePlayerViewController,做一些调整即可。
iOS 绘制1像素的线 一、Point Vs Pixel iOS中当我们使用Quartz,UIKit,CoreAnimation等框架时,所有的坐标系统采用Point来衡量。系统在实际渲染到设置时会帮助我们处理Point到Pixel的转换。
如何给UIViewController瘦身 随着程序逻辑复杂度的提高,你是否也发现了App中一些ViewController的代码行数急剧增多,达到了2,3千行,甚至更多。这时如果想再添加一点功能或者修改现有逻辑变得让人无比头疼。
项目中疑难Crash问题集锦 iOS App运行中遇到Crash的情况相信大家都遇到过,开发和者测试中遇到了可能很方便的办法就是直接拿着设备连接一下,然后使用Xcode自带的工具就可以解析出Crash地址了。
最近面试人的一点儿感受 3月份来现在的公司,转眼间已经8个多月了,来这边以后逐渐接触到面试别人的机会,一路下来也应该面试了20,30个人了吧,今天就写点儿这段时间面试人的感受。我是做iOS开发中,所以面试的候选人基本上都是和iOS相关的,当然也涉及到非技术的部分。
ARC & MRC下string内存管理策略探究 前两天跟同事争论一个关于NSString执行copy操作以后是否会发生变化,两个人整了半天,最后写代码验证了一下,发现原来NSString操作没我们想的那么简单,下面就让我们一起看看NSString和NSMutableString在MRC下执行retain,copy,mutableCopy,以及ARC下不同的修饰__weak, __strong修饰赋值究竟发生了什么。
iOS 8 牛刀小试 1、UIWindow的bounds发生变化(Window本身发生了旋转) iOS 7之前Window的bounds不会随着方向而变化,但是到了iOS 8以后,随着设备方向的旋转,window.bounds.size.width和window.bounds.size.height也会相应发生变化。
iOS: FFmpeg编译和使用问题总结 折磨了我近一周多时间的FFmpeg库编译问题终于解决了,必须得把这一段时间来遇到过的坑全写出来。如果急着解决问题,编译最新版本的FFmpeg库请直接看第二部分,编译较老版本(0.7)的FFmpeg库请直接跳至第七部分,那里有你想要的编译脚本,但别忘了抽空看看全文。
如何使用KeyChain保存和获取UDID 本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID的问题。并给出一个获取UDID的工具类,使用方便,只需要替换两个地方即可。
imageIO完成渐进加载图片 不得不说,人都是有惰性的,一个月又快结束了,这个月虽说有点儿忙,但是绝对不差写几篇博客的时间,有时间去n次桌球厅,有时间玩n把英雄联盟,所谓小撸怡情大撸伤身,这个月游戏打得有点儿多,后面还是的控制一点儿。
工作三年的回顾与思考 三年前的今天我正式的告别美好的大学生活,记得当时团支书和舍友送我上的去火车站公交,踏上了南下的火车。我家是西安乡下的,大学也是在西安上的学,毕业前到过最南边的地方是昆山(学院组织的实习),这也是我毕业之前唯一一次出省,而这一次我将一个人去深圳,开始为自己的明天奋斗。
状态栏提示控件的实现原理 现在很多流行的软件都加入了状态栏提示的功能,比如手机qq,微信等,今天我们就一起来看看状态栏提示控件的原理与实现。 一、状态栏提示的实现原理 不知道大家看到状态栏提示控件,第一感觉它是怎么实现的呢? 我们知道即使平时写的view是充满全屏的,也始终不会显示到statusBar的上层的。
Quartz2D 图像处理 本文将为大家介绍常见的IOS图像处理操作包括以下四部分:旋转,缩放,裁剪以及像素和UIImage之间的转化,主要使用的知识是quartz2D。Quartz2D是CoreGraphics框架中的一个重要组成部分,可以完成几乎所有的2D图像绘制,处理功能。
IOS:聊一聊UIImage几点知识 有一段时间没有写博客了,中间隔了个五一假,算一下差不多20天,这段时间准备组内的一个分享,所以就耽搁了,今天准备写一些UIImage方面的东西。 UIImage是IOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有CGImage,以及IOS5.0以后新增加的CIImage。
屏幕旋转学习笔记 加速计是整个IOS屏幕旋转的基础,依赖加速计,设备才可以判断出当前的设备方向,IOS系统共定义了以下七种设备方向: typedef NS_ENUM(NSInteger, UIDeviceOrientation) { UIDeviceOrientationUnk...
IOS:屏幕旋转与Transform iTouch,iPhone,iPad设置都是支持旋转的,如果我们的程序能够根据不同的方向做出不同的布局,体验会更好。 如何设置程序支持旋转呢,通常我们会在程序的info.
批量导入图片和视频到模拟器的相册 IOS开发中我们经常会用到模拟器调试,模拟器有个主要的好处就是程序启动块,最重要的是如果没有证书的话,我们就只能在模拟器上调试了。使用模拟器调试时我们可能碰到需要从系统相册选择图片的情况,特别是做图片处理类相关的程序时,更是经常用到。
IOS中多版本,多设备类型支持注意事项 IOS系统从07年出来,到现在也有6年了,每年发布一次到两次新的设备,从iPhone1,iPhone2 ... iPhone4s再到最新的iPhone5。硬件在升级的过程中CPU的架构也可能发生变化,如最早的armv6,armv7再带最新的iPhone5所以用的armv7s。
IOS中如何解析并显示Gif 聊天的时候我们经常用到很多搞笑的Gif表情,有时候千言万语真的比不上一个Gif来的实在。以前一直以为想Gif作为一种常用格式,各大平台应该都会支持,知道前两天项目中要加载一个Gif作为过渡动画,我查了半天帮助文档,发现IOS中居然没有现成的支持加载和播放Gif的类。
IOS中如何Hook消息 年过完了,该收心了,该开始学习了。 我们都知道在windows下可以通过API轻松的hook很多消息,IOS里面貌似还没有现成的API(可能是我还没发现吧),前段时间碰巧看到Objective-C运行时的一些东西,于是心想着是不是可以尝试一下实现hook的功能。
NSTimer你真的会用了吗 看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗? 我想说你知道NSTimer会retain你添加调用方法的对象吗?你知道NSTimer是要加到runloop中才会起作用吗?你知道NSTimer会并不是准确的按照你指定的时间触发的吗?你知道NSTimer就算添加到runloop了也不一定会按照你想象中的那样执行吗? 如果上面提出的哪些问题,你并不全部了解,那么请细心的看完下面的文章,上面的那几个问题我会一一说明,并给出详细的例子。
UITableViewCell的高亮和选中以及自绘分割线 UITableView是一个比较复杂的控件,不过再负责也是由一些基础的UIView组成的,它继承自UIScrollView,并由很多重用的cell组成。
我用两年半画了一个圈 这周五我终于转正了,也意味着我离开杭州来深圳已经三个月了。不知道该感慨时间过得快还是慢呢? 说时间过得快是因为感觉在杭州经历的事都好像是刚刚发生过,一切都那么清晰,熟悉的同事,美丽的风景,一群可以谈心的朋友,所以的这些都让我有点儿想念杭州。
Objective-c方法调用流程 Objective-c是一门动态语言,动态两个字主要就体现在我们调用方法的时候,运行时回动态的查找方法,然后调用相应的函数地址。运行时是整个Objective-c程序的基石,有了它我们的程序才能正常运行起来。
UIWindow的一点儿思考 每一个IOS程序都有一个UIWindow,在我们通过模板简历工程的时候,xcode会自动帮我们生成一个window,然后让它变成keyWindow并显示出来。这一切都来的那么自然,以至于我们大部分时候都忽略了自己也是可以创建UIWindow对象。
关于presentModalViewController的一点儿思考 有一个多月没有写blog了,手有点儿生。今天没事儿,突然想起以前文档中看到关于弹出模态对话框的一个知识点,于是想着何不动手验证一下。
运算符优先级及结合顺序随笔 最近在网上看到一段开源代码中有一个关于链表操作的代码,其中有一行如下: --pNode->next; 看到这段代码,我一时想不起这些运算符的结合顺序是什么样子了,于是开始查找资料并写了下面的测试程序: 1 // test operator...
做IOS开发这一年 算算应该是2011年6月份,我开始接触了IOS开发,由于之前是做C++开发的,入门还算比较快,一周时间看完objective-c的语法就开始跌跌撞撞的写一些简单的界面,这一切好像来的都很快。
关于博客的原创和转载的一点儿看法 今天下午编码休息的时间,同事问我使用viewWithTag获取到相应subview的问题,于是我就把我很早前写的一片博客 "viewWithTag获取subview规则详解"的地址发给他了。
UIColor,CGColor,CIColor三者的区别和联系 最近看了看CoreGraphics的东西,看到关于CGColor的东西,于是就想着顺便看看UIColor,CIColor,弄清楚它们之间的区别和联系。
Present ViewController Modally 一、主要用途 弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等。
颈椎病,大部分IT人的痛 今天晚上本来打算写怎么正确的presentModalViewController的,由于颈椎难受,只好搁浅。 先说说我的颈椎问题吧,这一段时间经常坐床上看书,有时候还半躺着看会儿电影。
UITabBarController使用详解 UITabBarController是IOS中很常用的一个viewController,例如系统的闹钟程序,ipod程序等。UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中。
UINavigationController使用详解 有一阵子没有写随笔,感觉有点儿手生。一个多月以后终于又一次坐下来静下心写随笔,记录自己的学习笔记,也希望能够帮到大家。 废话少说回到正题,UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的APP中(如qq,系统相册等)都有用到。
UIWindow & UIWindowLevel笔记 一、UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面。UIWindow在程序中主要起到三个作用: 1、作为容器,包含app所要显示的所有视图 ...
Subview的事件响应 在view的层级里面,默认情况下subview是可以显示到其父view的frame区域以外的,通过设置clipToBounds属性为YES,可以限制subview的显示区域。
获取subview 通常我们在view层级里面对subView的操作可以通过两种方式:1、保留一个subview的引用,然后在类中通过该引用对该subview进行操作,但是要注意在适当的位置添加内存维护的代码,退出前手动释放。
View的FirstResponder的释放问题 今天遇到一个问题,当我隐藏掉一个正在接受用户输入的UITextField的时候,键盘并不会消失,而且键盘仍然接受用户输入,再次显示该TextField时候发现在隐藏状态下,所有的输入仍然传输到了该TextField中,于是查下官方资料找到如下解...
内存警告 我们都知道在移动设备上很多资源都是比较紧缺的,尤其时内存,通常都比较小,iPhone4也才只有512MB。而且IOS4.0以后还支持了多任务,这个问题就更加突出了。因此我们在平时设计程序的时候要注意管理好内存,减少不必要的开销,谨防泄露。
UIViewController生命周期 UIViewControl是IOS程序中的一个重要组成部分,扮演者一个大管家的身份,管理着程序中的众多视图,今天看看了官方文档并做了如下一些简单的记录: 何时加载view,加载的原则是什么,视图何时消失等问题,文档中讲的都很详细。
前两天有个朋友问我如何判断两个颜色的值是否相等,我想只要判断两个颜色的RGBA值是否相等不久可以了嘛,于是开始查找帮助文档找到了UIColor类,很容易就找到了函数: - (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(...
转眼间大学毕业已经一年有余了,突然觉得应该写点儿什么了,至少是记录下生活和工作中点点滴滴…… 刚毕业时从事的是C++编码工作,做了大概一年三个月的win32编程,这一年主要使用GDI,GDI+完成文字特效和打印方面的工作。