天天看点

关于storyboard和xib的小Tips

在纯手写代码和storyboard还存在争议的今天, 大部分开发者越来越趋近于storyboard了, 就连苹果官方也再逐渐的完善storyboard了, 使用storyboard不仅可以让我们的项目结构变的清晰, 还有利于后面的维护, 可视化的界面更加的面对对象, 今天我就来整理关于storyboard中的那些小技巧吧!

一. 给控件加圆角和边框

在使用xib的时候我们如果想要给一个控件加圆角和边框的时候, 会在属性列表里找不到关于这些属性, 这时怎么办呢? 难道只能用代码去添加吗? 不, 这里我们将用到一个关于xib运行时的一个属性, 在右边属性栏第三个按钮下有个关于KeyPath的框, 如果我们想要给控件加圆角, 只需要点左下角的+, 在keypath中输入layer.cornerRadius, 在Type中选择NSNumber, 后面的Value就是你想要设置圆角的大小了.

关于storyboard和xib的小Tips

同理在设置边框的时候我们同样可以添加一个属性, layer.borderWidth, Type也是NSNumber类型的, Vlaue就是边框的粗细了.

关于storyboard和xib的小Tips

但是当我们想要设置边框颜色的时候会发现设置不了, 这时需要我们自己去配置这个属性了. 首先我们对CALayer进行类别的拓展, 包含一个UIColor类型的属性 :

#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>

@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中设置边框颜色了

关于storyboard和xib的小Tips

二. Label自适应大小

在代码中我们可以用sizeToFit来让Label的大小随文字而改变, 如果用xib该怎么做呢, 这时我们要用AutoLayout来给Label加约束就可以达到label自适应文字大小了.

首先给Label设置左边和上边的约束, 也就是

关于storyboard和xib的小Tips

约束的大小视需求而定.

之后给Label设置固定宽度

关于storyboard和xib的小Tips

如果我们的文字没有Label设置的宽度那么宽, 就会出现

关于storyboard和xib的小Tips

我们只要选中刚刚加的宽度约束, 在左边属性中选择

关于storyboard和xib的小Tips

就可以把右边的裁掉了

关于storyboard和xib的小Tips

这样子无论我们的文字有多少, Label都能随之改变大小了. 如果有多个控件, 那么加好控件与控件之间的距离就行了~