摘要: 0603 block\运行时blockblock的本质是一个指向结构体的指针.运行时要分析clang命令反编译出来的c++代码,就要把一些小括号删掉来分析.因为这些小括号一般都是类型强转.oc底层runtime是通过objec_msgSend这种消息派发机制给一个对象发送消息调用指定的方法的.如下图... 阅读全文
posted @ 2016-01-09 18:16 Andy.Li 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 0531 - Autolayout 不仅可以做屏幕适配还可以做系统适配uidynamic 做物理动画.能做的效果如下图:AutolayoutAutolayout 是一种“自动布局”技术,专门用来布局UI界面的.有了Autolayout,请忘记frameAutolayout 要比 Autoresizi... 阅读全文
posted @ 2016-01-09 18:15 Andy.Li 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 0520 -KVO如下图所示:(面试可能会问到,你就按照下面的说)注意:NSString类型的成员变量用set方法时,要记得用copy,至于为什么,知道这么用就行了.如下图: 阅读全文
posted @ 2016-01-09 18:12 Andy.Li 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 0427深复制/浅复制浅复制:是址引用深复制:是值拷贝下面是解释,如下图:运行时机制runtime1、表象的就是MPMoviePlayer2、深层的是clang -rewrite-objc main.m再简化分析如下:面试回答:什么是runtime?答:程序调用之间的所有东西就是runtime.你用... 阅读全文
posted @ 2016-01-09 18:11 Andy.Li 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 0423 - GCD( Grand Central Dispatch)block复习请问,图中输出结果是多少?为什么?答:结果是10.因为在定义block的时候,block会把它前面的要用到的变量做一个内存拷贝,然后block执行的时候就从内存拷贝中去取值来使用.就像下面这样:GCD的队列和任务GC... 阅读全文
posted @ 2016-01-09 18:10 Andy.Li 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 0420 凡是继承了UIResponder的类都可以做响应者 响应事件的传递是由底到高来传递,响应者链条是由高到底来响应相应事件的传递(由底到高 找到正在和用户触摸交互的view)准则:事件由父控件传递给子控件,找到最适合处理这个事件的view来处理.如果父控件不能接收触摸事件,那么子控件就不可能收... 阅读全文
posted @ 2016-01-09 18:05 Andy.Li 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 0419任何view默认不支持多点触控,有一个属性设置Multiple Touch,设置为Yes即可支持多点触控触摸移动一个view,让view也跟着动代码关于触摸的一些解释:注意:touchesCancelled:withEvent:方法的产生可能是正触摸的view不见了根据touch的tapCo... 阅读全文
posted @ 2016-01-09 18:03 Andy.Li 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 0417创建UICollectionViewCell的Xib方法如下图枚举定义导航跳转方式js跳转到网页指定锚点如下图所示: 阅读全文
posted @ 2016-01-09 18:02 Andy.Li 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 0416注意调用关系,如下图:就是initWithCoder:、initWithFrame、setup方法三元组 阅读全文
posted @ 2016-01-09 18:00 Andy.Li 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 0414画线、圆和圆弧的第二种方法5中方法画矩形:第二种画图形的方法:之前做的方法都是先把要画的元素缓存到图形上下文CGConteextRef中去,现在第二种方法也缓存到CGPath中去.其实图形上下文本质也是在内部创建一个CGPath,图形上下文把所有的元素先缓存到CGPath中去,然后CGPat... 阅读全文
posted @ 2016-01-09 17:58 Andy.Li 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 0413 - Quartz2D使用Quartz2D画图形步骤:(drawRect: 方法 是 在view第一次显示到屏幕上的时候会调用一次.是系统主动去掉用的,不能直接调用.那么问题来了,比如我要通过滑块持续移动界面上画出的一个圆的位置怎么办呢?就要用到了刷帧也叫重绘,可以调用setNeedsDis... 阅读全文
posted @ 2016-01-09 17:56 Andy.Li 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 0411UItaBbar的结构每一个数组都有一个方法,那就是下面这个,如下图所示:如果想看系统控件是怎么构成的,那么就采用遍历其子控件的方式来做,如上一图中所示在iOS7及其以后的系统里,控制器ViewController的View都是通栏的,从头到脚.但在iOS6及其以前的系统里控制器ViewCo... 阅读全文
posted @ 2016-01-09 17:49 Andy.Li 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 0410在tableViewCell之间添加一根线,通栏iOS应用数据存储的常用方式plist存储文件 plist读取文件 下面是plist存储读取的图解:注意:plist只能存储常见的属性.和Metro中的ApllcaiotnDataSetting存储的格式以及数据类型基本一样偏好设置Prefer... 阅读全文
posted @ 2016-01-09 17:48 Andy.Li 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 0408makekeyAndVisible解释一个程序可以有多个Window,但只有一个窗口能够成为主窗口.如图中所示,此时的window2是主窗口.主窗口用处大了.从iOS7开始无论是主窗口还是次窗口,都可以交互,比如文本框输入文字.但在iOS6及其之前的版本,非KeyWindow(非主窗口)是无... 阅读全文
posted @ 2016-01-09 17:43 Andy.Li 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 0407UIPickerView、UIDatePicker和UIToolBar请参见视频和代码pch文件#ifdef __OBJC__//在这里面写oc的引用,比如一些oc的头文件或者NSLog的别名定义。如果oc的头文件写在了外面,则会报很多错误,原因就是写在外面的话编译器以为是c语言的头文件,会... 阅读全文
posted @ 2016-01-09 17:40 Andy.Li 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 0403QQ列表展开收起的原理更改 numbersOfRowsInSection 的返回的数目,为0则收起group,不为零则为展开.先修改模型数据刷新对应的表格代码如下:这个地方会出现一个问题,由于每次点击虽然将nameView的小三角旋转了MPI2,但因为每次都要刷新一次tableView,这样... 阅读全文
posted @ 2016-01-09 17:37 Andy.Li 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 0402通知和代理的区别代理是一对一的,只能是调用实现了协议里的方法,对象作为实现了该方法才能执行方法通知是多对多,它是通过通知中心分发通知要及时移除,如果不及时移除可能会收到多次通知,就好像C#中的事件注册多次一样.也可能(通知中心不会保留被通知的对象)是被通知的对象已经销毁,但通知中心仍保留这个... 阅读全文
posted @ 2016-01-09 17:35 Andy.Li 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 0330cell的一些常见属性设置cell右边指示器的类型 设置cell右边指示器的view cell的backgroundView和selectedBackgroundView cell的backgroundColor.但是backgroundView的优先级更高些.一般用backgroundVi... 阅读全文
posted @ 2016-01-09 17:33 Andy.Li 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 0329UIScrollView的常见属性及其解释常见属性,如下图: 具体解释,如下图: 喜马拉雅设置的例子代码: 效果 阅读全文
posted @ 2016-01-09 17:30 Andy.Li 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 0326Xib:描述软件界面,轻量级,一般用来描述局部界面Xib的获取,如下图所示:xib在我们开发的时候叫xib,但如果运行在我们手机里会生成nib.所以xib和nib两种方法来访问xib 阅读全文
posted @ 2016-01-09 17:28 Andy.Li 阅读(121) 评论(0) 推荐(0) 编辑