最近在開發(fā)需要給圖片切圓角,正常來說是按照固定的大小來進(jìn)行裁剪圓角,但是由于業(yè)務(wù)原因材原,圖片無法提供固定的大小而且要保證在固定的區(qū)域完全展示,所以就有了以下的探索季眷。
確定思路:
1.獲取調(diào)整后的實際圖片尺寸
2.根據(jù)圖片尺寸調(diào)整View的大小
3.對View進(jìn)行裁剪
1.獲取調(diào)整后的實際圖片尺寸
根據(jù)網(wǎng)上的答案余蟹,有一段代碼可以獲取到調(diào)整后實際圖片尺寸
float widthRatio = imageView.bounds.size.width / imageView.image.size.width;
float heightRatio = imageView.bounds.size.height / imageView.image.size.height;
float scale = MIN(widthRatio, heightRatio);
float imageWidth = scale * imageView.image.size.width;
float imageHeight = scale * imageView.image.size.height;
這里要注意的點(diǎn)是這里網(wǎng)絡(luò)的image是要加載完后才能獲取到大小。
2.根據(jù)圖片尺寸調(diào)整View的大小
這里我加載網(wǎng)絡(luò)圖片用的是FLAnimatedImageView(用SDWebImage也一樣)子刮,因為要加載完后進(jìn)行操作威酒,所以調(diào)用
- (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder completed:(nullable SDExternalCompletionBlock)completedBlock
這個方法,在回調(diào)里面進(jìn)行裁剪處理
3.對View進(jìn)行裁剪
在block里面調(diào)用步驟一的代碼,最好把里面的Image換成回調(diào)的Image兼搏,然后重新對ImageView的大小坐標(biāo)進(jìn)行調(diào)整卵慰,并對ImageView進(jìn)行正常切角即可。