美文网首页
根据UIViewContentModeScaleAspectFi

根据UIViewContentModeScaleAspectFi

作者: guocongli | 来源:发表于2020-02-28 17:29 被阅读0次

    最近在开发需要给图片切圆角,正常来说是按照固定的大小来进行裁剪圆角,但是由于业务原因,图片无法提供固定的大小而且要保证在固定的区域完全展示,所以就有了以下的探索。
    确定思路:
    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进行正常切角即可。

    相关文章

      网友评论

          本文标题:根据UIViewContentModeScaleAspectFi

          本文链接:https://www.haomeiwen.com/subject/zwwlhhtx.html