在纯手写代码和storyboard还存在争议的今天, 大部分开发者越来越趋近于storyboard了, 就连苹果官方也再逐渐的完善storyboard了, 使用storyboard不仅可以让我们的项目结构变的清晰, 还有利于后面的维护, 可视化的界面更加的面对对象, 今天我就来整理关于storyboard中的那些小技巧吧!
一. 给控件加圆角和边框
在使用xib的时候我们如果想要给一个控件加圆角和边框的时候, 会在属性列表里找不到关于这些属性, 这时怎么办呢? 难道只能用代码去添加吗? 不, 这里我们将用到一个关于xib运行时的一个属性, 在右边属性栏第三个按钮下有个关于KeyPath的框, 如果我们想要给控件加圆角, 只需要点左下角的+, 在keypath中输入layer.cornerRadius, 在Type中选择NSNumber, 后面的Value就是你想要设置圆角的大小了.
同理在设置边框的时候我们同样可以添加一个属性, layer.borderWidth, Type也是NSNumber类型的, Vlaue就是边框的粗细了.
但是当我们想要设置边框颜色的时候会发现设置不了, 这时需要我们自己去配置这个属性了. 首先我们对CALayer进行类别的拓展, 包含一个UIColor类型的属性 :
#import
#import
@interface CALayer (XibConfiguration)
@property (nonatomic,strong) UIColor *borderUIColor;
@end
在.m文件中重写borderUIColor的setter和getter方法 :
#import "CALayer+XibConfiguration.h"
@implementation CALayer (XibConfiguration)
- (void)setBorderColor:(CGColorRef)borderColor{
self.borderUIColor = (__bridge UIColor *)(borderColor);
}
- (UIColor *)borderUIColor{
return [UIColor colorWithCGColor:(__bridge CGColorRef)(self.borderUIColor)];
}
@end
配置好后我们就可以在KeyPath中设置边框颜色了
二. Label自适应大小
在代码中我们可以用sizeToFit来让Label的大小随文字而改变, 如果用xib该怎么做呢, 这时我们要用AutoLayout来给Label加约束就可以达到label自适应文字大小了.
首先给Label设置左边和上边的约束, 也就是
约束的大小视需求而定.
之后给Label设置固定宽度
如果我们的文字没有Label设置的宽度那么宽, 就会出现
我们只要选中刚刚加的宽度约束, 在左边属性中选择
就可以把右边的裁掉了
这样子无论我们的文字有多少, Label都能随之改变大小了. 如果有多个控件, 那么加好控件与控件之间的距离就行了~