记录一个最近发现的小细节:UIImage.sizeCGImage.size 在一些情况下是不相等的。

如果你的图片是添加到 Assets.xcassets 并设置了 1x、2x 等不同规格,那么 UIImage.size 的大小将始终等于 1x 时候的尺寸,不论当前机型实际使用了哪种规格的图片。

CGImage.size 返回的则是 UIImage.size * ImageScale 之后的结果。也就是说如果该图片是 2x 图,那么 CGImage.size 就会是 UIImage.size 的二倍。

这一问题在使用 CGImage 画图会暴露出来,很多时候会使用 UIImage.size 或者 UIImageView.size 设置画布,然而因为忽略了 CGImage.size,就会导致画出来的图片尺寸偏大,出现显示的图片被剪裁的问题。