野火🔥

【读书笔记】iOS编程实践

2015/11/18
  • 1、UIView的新属性 tintColor,一般如果子view不定义默认使用父view的tintColor
  • 2、关联引用 runtime机制

    objc_setAssociatedObject(self, &key, value, OBJC_ASSOCITION_RETAIN)
    objc_getAssociatedObject(self, &key)

  • 3、NSCache iOS的缓存,线程安全

    NSCache 基本上就是一个会自动移除对象来释放内存的 NSMutableDictionary。无需响应内存警告或者使用计时器来清除缓存。唯一的不同之处是键对象不会像 NSMutableDictionary 中那样被复制,这实际上是它的一个优点(键不需要实现 NSCopying 协议)。
    项目中任何你称之为缓存却不是 NSCache 对象的东西都应该被换成 NSCache。

  • 4、CollectionView增加header和footer的比较好的方法是增加Header section和footer section
  • 5、为什么

    view.hidden = NO;
    [self doSomeThing];
    view.hidden = YES;
    

    无论doSomeThing运行多长时间,view都不显示。这是因为这在主线程,doSomeThing会阻塞事件处理,也就是绘制会在设置完view.hidden = YES后才开始,所以相当于没有绘制

  • 6、UIVIew的位移比绘制的成本低。

    setNeedsDisplay --->drawInRect 重绘
    setNeedLayout ---->LayoutSubviews 位移
    

    尽量避免重绘,在单个循环事件中调用多次setNeedsDisplay,最终只会调用一次,这个方法只用来标记需要重绘

CATALOG