美文网首页
对UIView实现圆角的改进

对UIView实现圆角的改进

作者: 简书坤 | 来源:发表于2018-03-22 19:48 被阅读61次

    第一版位置:

    给视图添加圆角的轻量级方法

    第一版存在的问题:

    1. 不能自动给AutoLayout出来view正确添加圆角;
    2. 反复的添加和移除做圆角处理的shapeLayer,存在一定的性能损耗;
    3. 部分API设计的不够理想;

    现在给出了修改后的第二版:

    1. 现在你不需要再为获取xib或者约束出来的viewbounds而头疼了,UIView+DRCorner已经不在需要你传入bounds了;
    2. 同样的现在不会存在反复添加和移除实现圆角化的shapeLayer了;
    3. 你可以直接创建出来一个控制圆角显示的DRCornerModel实例,来控制圆角的各个属性:如cornerRadius等,然后直接调用UIView的拓展方法-dr_cornerWithCornerModel:方法进行圆角化处理;

    效果如下图:


    DRCornerExt-Demo1.gif

    swift版本已提供DRCorner_Swift

    这里给出第一版中说过的另类的实现方法:
    创建一个UIView的子类DRCornerView,替换DRCornerViewlayerCAShapeLayer,对shapeLayer做第一版一样的圆角处理,然后再设置这个DRCornerView和要圆角化的view保持在同一位置即可(如果被遮挡的corberedView有点击或者其他交互事件这时你就需要设置DRCornerViewuserInteractionEnabledNO,以此来将touch事件传递给corberedView),具体可见 DRCornerExt中的CornerView文件夹下的实现;

    ps:你甚至可以重写DRCornerView-willMoveToSuperview:方法,将DRCornerView设置和superView保持一致大小;

    附上github链接 DRCornerExt

    相关文章

      网友评论

          本文标题:对UIView实现圆角的改进

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