根据UIViewContentModeScaleAspectFit调整后的图片进行切圆角

最近在开发需要给图片切圆角,正常来说是按照固定的大小来进行裁剪圆角,但是由于业务原因,图片无法提供固定的大小而且要保证在固定的区域完全展示,所以就有了以下的探索。
确定思路:
1.获取调整后的实际图片尺寸
2.根据图片尺寸调整View的大小
3.对View进行裁剪

1.获取调整后的实际图片尺寸

根据网上的答案,有一段代码可以获取到调整后实际图片尺寸

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;

这里要注意的点是这里网络的image是要加载完后才能获取到大小。

2.根据图片尺寸调整View的大小

这里我加载网络图片用的是FLAnimatedImageView(用SDWebImage也一样),因为要加载完后进行操作,所以调用

- (void)sd_setImageWithURL:(nullable NSURL *)url placeholderImage:(nullable UIImage *)placeholder completed:(nullable SDExternalCompletionBlock)completedBlock

这个方法,在回调里面进行裁剪处理

3.对View进行裁剪

在block里面调用步骤一的代码,最好把里面的Image换成回调的Image,然后重新对ImageView的大小坐标进行调整,并对ImageView进行正常切角即可。

你可能感兴趣的:(根据UIViewContentModeScaleAspectFit调整后的图片进行切圆角)