美文网首页
XIB下控件边框相关设置

XIB下控件边框相关设置

作者: 楚简约 | 来源:发表于2017-04-19 09:32 被阅读0次

    在讲XIB之前首先说下代码的方式那怎么设置

    //设置边框颜色和宽度
    self.myView.layer.borderColor = [UIColor redColor].CGColor;
    self.myView.layer.borderWidth = 2;
    //设置圆角
    self.myView.layer.masksToBounds = YES;
    self.myView.layer.cornerRadius = 10; (宽高都是20的话就是纯圆)
    

    通过xib快速设置圆角
    是利用User Defined Runtime Attributes 进行设置


    设置圆角.png

    身份检查器
    详细步骤介绍
    点击UI控件
    点击 Xcode 右侧上方身份检查器(左起第三个按钮)
    找到 Runtime Attributes 属性,通过Key Path 和 Value 进行设置
    设置圆角需要到的Key Path:
    layer.cornerRadius ,注意该 key 对应 Value 的 type 应该设置为 String
    layer.masksToBounds ,注意该 key 对应 Value 的 type 应该设置为 Boolean , 当右侧出现对号时为YES
    注意:经过测试,UILabel 必须设置设置 masksToBounds 这一键值对,才会出现圆角效果;UIButton、UIView、UIImageView 只需设置 layer.cornerRadius 这一键值对就可实现圆角效果

    Xib 为控件设置边框效果
    所用方法和上面所讲Xib设置圆角基本相同,唯一不同的就是设置 key Path 键值对

    layer.borderWidth ,注意该 key 对应 Value 的 type 应该设置为 Number
    layer. borderXibColor , 注意该 key 对应 Value 的 type 应该设置为 Color

    不过不知道你有没有注意到 layer.borderColor 对应值得类型:Color;经常用代码进行边框设置的你,一定记得我们设置的颜色类型为CGColor,不错问题就出在了这上面
    按照上述方法我们设置的边框颜色为 UIColor 类型,当然不会起作用了啊。
    (如果代码设置那个颜色或提示出一段桥接代码)

    这时下面就给出一种简便的解决方法,我们只需要为 CALayer 创建一个分类就可以了,具体代码如下:
    CALayer+xibConfig.h

    #import <QuartzCore/QuartzCore.h>
    #import <UIKit/UIKit.h>
    @interface CALayer (xibConfig)
    @property(nonatomic, weak) UIColor * borderXibColor;
    @end
    

    CALayer+xibConfig.m

    #import "CALayer+xibConfig.h"
    @implementation CALayer (xibConfig)
    
    -(void)setBorderXibColor:(UIColor*)color
    {
        self.borderColor = color.CGColor;
    }
    
    -(UIColor*)borderXibColor
    {
        return [UIColor colorWithCGColor:self.borderColor];
    }
    

    注意:当我们使用Xib设置控件圆角、边框的时候,如果将key Path写错,系统不会报错,但是运行不会实现理想的效果


    我是楚简约,感谢您的阅读,

    喜欢就点个赞呗,“❤喜欢”,

    鼓励又不花钱,你在看,我就继续写~

    非简书用户,可以点右上角的三个“...”,然后"在Safari中打开”,就可以点赞咯~


    到此为止.记录下容易忘的细节同大家分享!!!

    相关文章

      网友评论

          本文标题:XIB下控件边框相关设置

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