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修饰符

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容