storyboard或者Xib给View设置边框属性(颜色,宽度,圆角)
2017-09-27 08:27
417 查看
纯代码设置Button或者其他View的边框属性
例: UIView* view = [[UIView alloc]init];
view.layer.borderWidth = 2.0;
view.layer.masksToBounds = YES;
view.layer.cornerRadius = 5.0;
view.layer.borderColor = [UIColorredColor].CGColor;
以下提供自定义控件的时候,使用Xib,或者用sb来进行布局,那么这时候怎么来使用storyboard或者Xib给View设置边框属性的方法
其主要设置的方式是通过在 XIB操作栏的User Defined Runtime Attributes中通过 KEY PATH去设置当前控件的属性,具体步骤如下图所示:
![](http://img.blog.csdn.net/20160730005821939)
设置圆角最常用的是设置圆角,边框颜色,因此需要用到的 key Path有一下几个:
layer.cornerRadius ,注意该 key 对应 Value 的 type 应该设置为 String/Number
两种类型均可(代码设置弧度为:thisViewlayer.masksToBounds = YES)
layer.masksToBounds ,注意该 key 对应 Value 的 type 应该设置为 Boolean ,
当右侧出现对号时为YES(代码圆角为:thisView.layer.masksToBounds = YES)
layer.borderWidth ,注意该 key 对应 Value 的 type 应该设置为 String/Number
两种类型均可(代码设置边框宽度为:thisViewlayer.borderWidth = 2)
layer.borderColor , 注意该 key 对应 Value 的 type 应该设置为
Color(代码设置边框颜色:thisView.layer.borderColor = [UIColor
redColor].CGColor)
其实如果你从上面一直敲下来的话:
你会发现只有1和2的两句代码是有效的;
3,4两句代码看起来并没有效果
原因:其实是因为在设置borderColor的时候,需要接受的是一个CGColor,而在 key Path中只有Color,其实就是 UIColor,类型是不对的,因此并没有正确显示想要展现的颜色.
因此这样的写法是有问题的.
所以要通过添加一个CALayer的类扩展来实现,将key Path中设置的UIColor转换成为CGColor,为边框设置颜色,实现如下:
![](//upload-images.jianshu.io/upload_images/1272323-25e15af4fe0565a1.png?imageMogr2/auto-orient/strip)
![](//upload-images.jianshu.io/upload_images/1272323-8ad8ee987909c767.png?imageMogr2/auto-orient/strip)
然后在你的分类.m文件中添加一个属性
#import "CALayer+XibBorderColor.h"
#import <UIKit/UIKit.h>
@implementation CALayer (XibBorderColor)
- (void)setBorderColorWithUIColor:(UIColor *)color
{
self.borderColor = color.CGColor;
}
@end
这样以后,只需要将key Path中的layer.borderColor修改成为layer.setBorderColorWithUIColor 就可以了
添加阴影同理:
-(void)setShadowColorWithUIColor:(UIColor *)color
{
self.shadowColor = color.CGColor;
}
@end
例: UIView* view = [[UIView alloc]init];
view.layer.borderWidth = 2.0;
view.layer.masksToBounds = YES;
view.layer.cornerRadius = 5.0;
view.layer.borderColor = [UIColorredColor].CGColor;
以下提供自定义控件的时候,使用Xib,或者用sb来进行布局,那么这时候怎么来使用storyboard或者Xib给View设置边框属性的方法
其主要设置的方式是通过在 XIB操作栏的User Defined Runtime Attributes中通过 KEY PATH去设置当前控件的属性,具体步骤如下图所示:
设置圆角最常用的是设置圆角,边框颜色,因此需要用到的 key Path有一下几个:
layer.cornerRadius ,注意该 key 对应 Value 的 type 应该设置为 String/Number
两种类型均可(代码设置弧度为:thisViewlayer.masksToBounds = YES)
layer.masksToBounds ,注意该 key 对应 Value 的 type 应该设置为 Boolean ,
当右侧出现对号时为YES(代码圆角为:thisView.layer.masksToBounds = YES)
layer.borderWidth ,注意该 key 对应 Value 的 type 应该设置为 String/Number
两种类型均可(代码设置边框宽度为:thisViewlayer.borderWidth = 2)
layer.borderColor , 注意该 key 对应 Value 的 type 应该设置为
Color(代码设置边框颜色:thisView.layer.borderColor = [UIColor
redColor].CGColor)
其实如果你从上面一直敲下来的话:
你会发现只有1和2的两句代码是有效的;
3,4两句代码看起来并没有效果
原因:其实是因为在设置borderColor的时候,需要接受的是一个CGColor,而在 key Path中只有Color,其实就是 UIColor,类型是不对的,因此并没有正确显示想要展现的颜色.
因此这样的写法是有问题的.
所以要通过添加一个CALayer的类扩展来实现,将key Path中设置的UIColor转换成为CGColor,为边框设置颜色,实现如下:
![](http://upload-images.jianshu.io/upload_images/1272323-25e15af4fe0565a1.png?imageMogr2/auto-orient/strip)
![](http://upload-images.jianshu.io/upload_images/1272323-8ad8ee987909c767.png?imageMogr2/auto-orient/strip)
然后在你的分类.m文件中添加一个属性
#import "CALayer+XibBorderColor.h"
#import <UIKit/UIKit.h>
@implementation CALayer (XibBorderColor)
- (void)setBorderColorWithUIColor:(UIColor *)color
{
self.borderColor = color.CGColor;
}
@end
这样以后,只需要将key Path中的layer.borderColor修改成为layer.setBorderColorWithUIColor 就可以了
添加阴影同理:
-(void)setShadowColorWithUIColor:(UIColor *)color
{
self.shadowColor = color.CGColor;
}
@end
相关文章推荐
- 使用storyboard设置button边框属性(颜色,宽度,圆角)
- 使用storyboard设置按钮边框属性(颜色,宽度,圆角)
- 设置UI控件的Layer属性(边框可见,边框颜色,边框宽度,边框圆角)
- 在Storyboard中或者xib中设置button的圆角属性,和其他不能设置的熟悉
- xib中设置圆角,边框宽度,边框颜色等
- 设置视图圆角,边框宽度/颜色
- 用xib设置圆角,边框和UITextField的私有属性placeholderColor
- 给UIImageview 添加边框 或者设置成圆角
- 给UIImageview 添加边框 或者设置成圆角
- 用xib设置圆角,边框和UITextField的私有属性placeholderColor
- iOS 在storyboard/xib中设置UIView的圆角等属性
- 为类目(类别)添加属性,使用storyboard设置边框颜色
- iOS之XIB设置边框颜色属性
- XIB 设置UIView的圆角边框等属性
- 为类目(类别)添加属性,使用storyboard设置边框颜色
- 给UIImageview 添加边框 或者设置成圆角
- 工作备忘-在xib/storyboard里面设置view圆角半径
- 使用Drawble文件实现圆角,填充颜色,边框等属性的设置(Android)
- 给UIImageview 添加边框 或者设置成圆角
- 代码设置TextView、Button等控件圆角边框背景颜色