iOS开发技巧:快速实现 圆角+描边

我们来说说如何对某个控件进行圆角、描边处理:

初级

对于一个初学者来说,如果要进行某个控件的圆角、描边设置,就要从Storyboard关联出属性,然后再对属性进行代码处理。

如下代码:

self.myButton.layer.cornerRadius =20;self.myButton.layer.masksToBounds =YES;self.myButton.layer.borderWidth =2;self.myButton.layer.borderColor = [UIColorblackColor].CGColor;

这样不仅需要Storyboard关联出属性,还要写一堆代码对属性进行设置,不得不说实在麻烦~

中级

比较机智的做法是使用Storyboard提供的Runtime Attributes为控件添加圆角描边。

选中控件,然后在Runtime Attributes框中输入对应的Key与Type与Value,这样程序在运行时就会通过KVC为你的控件属性进行赋值。(不仅仅是圆角、描边~)

如下图

设置圆角、描边的Key为:

layer.borderWidthlayer.borderColorFromUIColorlayer.cornerRadiusclipsToBounds

这样做不用关联出属性,但是需要输入大串字符串,也是不够方便。

高级

最后放大招了!创建UIView的分类,使用IBInspectable+ IB_DESIGNABLE关键字:

#importIB_DESIGNABLE@interfaceUIView(Inspectable)@property(nonatomic,assign) IBInspectableCGFloatcornerRadius;@property(nonatomic,assign) IBInspectableCGFloatborderWidth;@property(nonatomic,assign) IBInspectableUIColor*borderColor;@end

#import"UIView+Inspectable.h"@implementationUIView(Inspectable)-(void)setCornerRadius:(CGFloat)cornerRadius{self.layer.masksToBounds =YES;self.layer.cornerRadius = cornerRadius;}-(void)setBorderColor:(UIColor*)borderColor{self.layer.borderColor = borderColor.CGColor;}-(void)setBorderWidth:(CGFloat)borderWidth{self.layer.borderWidth = borderWidth;}- (CGFloat)cornerRadius{returnself.layer.cornerRadius;}- (CGFloat)borderWidth{returnself.layer.borderWidth;}- (UIColor*)borderColor{return[UIColorcolorWithCGColor:self.layer.borderColor];}@end

代码下载

直接使用

直接将这两个文件拖入项目中即可使用,在右边栏将会显示圆角和描边的属性设置

如图:

动态显示设置效果

直接使用的话只有在运行时才能看到效果,

例如要实时显示一个UIBUtton圆角、描边效果,需要创建一个类继承UIButton

#import#import"UIView+Inspectable.h"@interfacemyButton:UIButton@end

#import"myButton.h"@implementationmyButton@end

只要将button的Class选择该空白类即可

关于IBInspectable与IB_DESIGNABLE的使用详情可以参考这篇文章《谈不完美的IBDesignable/IBInspectable可视化效果编程》

你可能感兴趣的:(iOS开发技巧:快速实现 圆角+描边)