iOS xib下设置UILabel等控件的边框

来源:互联网 发布:生产进度跟踪软件 编辑:程序博客网 时间:2024/06/10 09:38

(本文写于 2016年4月11日   xcode版本为 7.3  iOS最高版本为9.3.1)

使用xib 对UILabel 的边框进行设置

今天写东西出现了一个问题  就是xib里面对于UILabel边框的设置显示不出来,问了好久别没人理我这个小白(附上我自己提问的链接http://zhidao.baidu.com/question/1799176400788635947.html) 然后就自己摸索,果然应了那句话  当你无依无靠的时候,你就什么都会了 ,说多了都是泪,下面说怎么在xib下对UILabel等控件设置边框


我们都知道 代码里面对于边框的设置是通过控件调用layer的属性来完成的,比如:

label.layer.borderWidth = 1;
label.layer.borderColor = [[UIColor grayColor]CGColor];

在xib里面 就要使用User Defined Runtime Attritubes 通过运行时加载layer的属性,废话不多说上

看到这也有有的小伙伴就说了 妈的 layer.borderColor是CGColor 不是UIColor,如果你是这样,那么恭喜你,你比我厉害,我之前老忘大哭,所以 为了将UIColor转化为CGColor我们需要CALayer增加一个分类(category),附上增加分类的过程(我不会创建问了另外一个“大神”):

 1  command + N 


2点next出现下面的 


3  会生成这样的文件


分类创建完之后在分类里面写一个方法(******方法名一定要记住********)

- (void)setBorderColorFromUIColor:(UIColor *)color
{
    self.borderColor = color.CGColor;
}


方法写不写在.h里面都无所谓,方法写完之后

User Defined Runtime Attritubes  里面keyPath 改为 layer.borderColorFromUIColor 就可以(*****layer打点调用的方法一定要和分类里面的方法名一致,不能写为layer.borderColorWithUIColor什么的*****)到这里就解决了UILabel在xib里面设置边框的问题,下面总结一下:

1,xib  中User Defined Runtime Attritubes 里面只能提供UIColor 所以要在CALayer写一个分类使UIColor转化为CGColor

2,分类写好之后,xib  中User Defined Runtime Attritubes 的keyPath layer调用的方法要和分类中UIColor转化为CGColor 的方法名一样


3 就这些  哈哈哈哈哈   今天又加班



0 0
原创粉丝点击