ios 知识总结
本人小菜鸟 能力一般 总是记不住东西 故在此写下记录 望日后有所可查
1 Masonry的使用导致内存增加问题:
并不是Masonry本身的问题,原因是在每次执行updateConstraints的时候会重新绘制一次,内存就会增长一次,对于没用或者失效的约束应当立即删除.Masonry的mas_makeConstraints方法是添加约束。每添加一层,内存增长一次,不删除就一直存在。问题就在约束的管理上
Masonry的三种设置约束的方法:
- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block
- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block
- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block
第一个是添加约束,不管原来与没有,只是个添加;
第二个是更新,在原来约束的基础上进行局部更新;
第三个是重设,删除原来已有的约束,重新添加约束,可以替换mas_remakeConstraints。
在cell约束需要频繁改变时(或者说updateConstraints会被多次调用时),我们要用mas_remakeConstraints方法来设置约束