iOS开发中的一些Tips(Swift版)

本文仅供参考,如果有什么错误或者不当的地方欢迎评论指出。本文将不定期更新!

1、CALayer的content必须是CGImage对象,不然得不到对应的图层!

2、CALayer的contentGravity设置内容适应方式、contentScale是像素点和apple点的对应,

可以解决CATextLayer绘制文字锯齿问题

3、UIView有一个叫做clipsToBounds的属性可以用来决定是否显示超出边界的内容,CALayer对应的属性叫做masksToBounds

4、UIApplication.sharedApplication().delegate?.window获取的是当前屏幕的uiwindow,UIApplication.sharedApplication().keywindow在第一个页面的viewdidload是空的,但在viewdidload之后是有值的。keywindow的值是最后一个调用makekeyandvisible()的组件

5、一个CALayer可以设置mask蒙板(CALayer类型),设置后形状由mask决定,内容由原有CAlayer决定,mask需要设置content内容,否则出来效果是一片空白(CALayer蒙板图层真正厉害的地方在于蒙板图不局限于静态图。任何有图层构成的都可以作为mask属性,这意味着你的蒙板可以通过代码甚至是动画实时生成。)。CALayer转UIImage方法:CALayer.renderInContext()绘制然后通过UIGraphicsGetImageFromCurrentImageContext()获取。颜色改变的loading demo

6、CALayer的content可以通过设置contentsRect来剪切一个CGImage的一部分,contentsRect原图大小位(0,0,1,1)设置大于1或者小于0将会拉伸边沿像素.contenesCenter标记一个可拉伸的区域。

7、自定义view时用代码添加约束需要设置子view的translatesAutoresizingMaskIntoConstraints为false(解决约束冲突)

8、MVVM:ViewModel包含一个Model,更新model的代码(比如网络请求,修改model的值);controller:包含ViewModel,监听viewModel数据变化,更新当前view;M:model模型。

9、swift使用kvo时,监听Model的属性需要加上dynamic修饰符

你可能感兴趣的:(iOS开发中的一些Tips(Swift版))