先前一直做UI用的是storyboard,想给一个label加边框。
而已知的加边框什么的都是用代码。
然后就在viewDidLoad里加了进去下面几行
label.layer.borderWidth=1;
label.layer.borderColor=[UIColor redColor].CGColor;
那么,该如何在storyboard里设置layer呢?
去Google喽。
以下是我找的
在红圈圈出的地方,我们可以在其中写上layer的属性,
当然不要忘了在.h里#impor<QuartzCore/QuartzCore.h>
列举几种
layer.cornerRadius = 5;
layer.masksToBounds = NO;
layer.borderWidth = .5;
layer.borderColor = [UIColor redColor].CGColor;
layer.shadowColor = [UIColor orangeColor].CGColor;
layer.shadowOpacity = 0.4;
layer.shadowRadius = 5.0;
iphone - can the border of UITextView or UILabel be set in storyboard? - Stack Overflow
上面链接里除了给出的上面的方法外,还有一种
IBInspectable / IBDesignable - NSHipster
这种我觉得更棒。有兴趣的去学习吧。
网友评论
我分类里面是这样写的
#import "CALayer+UIColor.h"
@Implementation CALayer (UIColor)
- (void)setBorderColorFromUIColor:(UIColor *)color
{
self.borderColor = color.CGColor;
}
@EnD
可是我在xib中用的label还是没有边框
(附上 我提问的链接 http://zhidao.baidu.com/question/1799176400788635947.html)
.h
//@property (nonatomic, strong) UIColor *borderColorFromUIColor;
//- (void)setBorderColorFromUI:(UIColor *)color;
@property(nonatomic, assign) UIColor* borderUIColor;
...
.m
//#import <objc/runtime.h>
@Implementation CALayer (LKExtension)
//- (void)setBorderColorFromUI:(UIColor *)color {
// self.borderColor = color.CGColor;
//}
//
//- (UIColor *)borderColorFromUIColor {
// return objc_getAssociatedObject(self, @selector(borderColorFromUIColor));
//}
//
//- (void)setBorderColorFromUIColor:(UIColor *)color {
// objc_setAssociatedObject(self, @selector(borderColorFromUIColor), color, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
// [self setBorderColorFromUI:self.borderColorFromUIColor];
//}
- (void)setBorderUIColor:(UIColor*)color {
self.borderColor = color.CGColor;
}
- (UIColor*)borderUIColor {
return [UIColor colorWithCGColor:self.borderColor];
}
一共两种方法,上面注释掉的是使用运行时解决的,需要添加头文件。没注释的就是使用属性添加的。