storyboard或者Xib给View设置边框属性(颜色,宽度,圆角)

纯代码设置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去设置当前控件的属性,具体步骤如下图所示:

设置圆角最常用的是设置圆角,边框颜色,因此需要用到的 key Path有一下几个:

  1. layer.cornerRadius ,注意该 key 对应 Value 的 type 应该设置为 String/Number 
    两种类型均可(代码设置弧度为:thisViewlayer.masksToBounds = YES)
  2. layer.masksToBounds ,注意该 key 对应 Value 的 type 应该设置为 Boolean , 
    当右侧出现对号时为YES(代码圆角为:thisView.layer.masksToBounds = YES)
  3. layer.borderWidth ,注意该 key 对应 Value 的 type 应该设置为 String/Number 
    两种类型均可(代码设置边框宽度为:thisViewlayer.borderWidth = 2)
  4. 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,为边框设置颜色,实现如下:

然后在你的分类.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

时间: 2024-10-05 09:12:38

storyboard或者Xib给View设置边框属性(颜色,宽度,圆角)的相关文章

css3设置边框属性

css设置边框属性:设置边框圆角 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> div.border1{ border: 3px solid blue;/*边框大小 实心线 蓝色*/ padding :10px 40px;/* 上下边距 左右边距*/ bac

Android开发,使用背景图(xml drawable)为view 设置边框

Android 开发中,遇到需要设置边框的情景,使用背景图来实现,代码如下: <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 连框颜色值 --> <item> <shape> <solid android:color="#CCCCCC" /> </shape> </item>

通过调色板来设置div的颜色宽度高度

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{ padding: 0px; margin: 0px; } #div-color{ background-color: #ffff00; width: 100px; height: 100px; } .mid

使用storyboard设置按钮边框属性(颜色,宽度,圆角)

通常使用Category时,只能添加方法,不可添加属性.但是在使用Storyboard时我们可能会使用到keyPath,这里设置的key都需要是所设置视图的属性值,并且类型有所限制. 例如:我现在有一个按钮,我想设置成圆角,并且是紫色边框.并且我不想写代码,想通过storyboard直接设置.这样看起来很帅(其实就是一个强迫症吧,因为一直在用sb设置整个界面,但是突然出现几个样式,在sb中不可以直接设置,这种感觉很烦躁的, 遇到的问题:这里key path 的type类型是固定的,这里我们不可以

为类目(类别)添加属性,使用storyboard设置边框颜色

通常使用Category时,只能添加方法,不可添加属性.但是在使用Storyboard时我们可能会使用到keyPath,这里设置的key都需要是所设置视图的属性值,并且类型有所限制. 例如:我现在有一个按钮,我想设置成圆角,并且是紫色边框.并且我不想写代码,想通过storyboard直接设置.这样看起来很帅(其实就是一个强迫症吧,因为一直在用sb设置整个界面,但是突然出现几个样式,在sb中不可以直接设置,这种感觉很烦躁的,所以要解决掉它). 遇到的问题:这里key path 的type类型是固定

使用CSS设置边框和beijing

一.设置边框 1.边框样式 属性 说明 border-width 设置边框的宽度 boder-style 设置边框的样式 border-color 设置边框的颜色 a.border-width属性 自定义边框的宽度时,不能定义为百分比. b.border-style属性 以上属性可以设置一个.二个.三个.四个属性值,当设置一个值得时候四条边框都应用该属性值,当设置两个的时候时候上下使用第一个属性值,左右使用第二个属性值,当设置三个值的时候,第一个值应用在上边框,第二个应用到左右边框,第三个属性值

CSS .css边框属性(border)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>边框属性</title> <style> /*.box{ height: 100px; width: 100px; background-color: #3385ff; border-top:1px double #000; border-rig

swift 之xib自定义view可视化到storyboard

首先直入正题:@IBInspectable & @IBDesignable 对于 @IBInspectable 和 @IBDesignable 可详见官方文档 : Creating a Custom View That Renders in Interface Builder 当然也可以阅读下中文版的: http://nshipster.cn/ibinspectable-ibdesignable/ 如果自定view是自己用纯代码写的,对于上面两种处理都比较简单,只需要指定类名即可. 但是如果这个

iOS之分别使用代码和storyboard、xib为控件设置圆角(以按钮为例)

首先我们看一下代码是如何给按钮设置圆角的: 我们再来看看如何在storyboard或xib中给按钮设置圆角: 1.在storyboard或xib中添加按钮后,设置标题和背景色,做好约束: 2.点击 Show the identity inspector 按钮:按钮位置如下图所示: 3.然后在User Defined Runtime Attributes 栏为按钮添加layer.cornerRadius属性,类型为Number,根据需求设置一个Value值.如下图所示: 4.到这里基本完成了对按钮