UIImage.size And CGImage.size
记录一个最近发现的小细节:UIImage.size
和 CGImage.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
,就会导致画出来的图片尺寸偏大,出现显示的图片被剪裁的问题。