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

通常使用Category时,只能添加方法,不可添加属性。但是在使用Storyboard时我们可能会使用到keyPath,这里设置的key都需要是所设置视图的属性值,并且类型有所限制。

例如:我现在有一个按钮,我想设置成圆角,并且是紫色边框。并且我不想写代码,想通过storyboard直接设置。这样看起来很帅(其实就是一个强迫症吧,因为一直在用sb设置整个界面,但是突然出现几个样式,在sb中不可以直接设置,这种感觉很烦躁的,

遇到的问题:这里key path 的type类型是固定的,这里我们不可以添加。这里只有一个UIColor类型的color,但是设置边框的颜色,应该是CGColor的,所以类型不匹配,我们需要为CALayer添加一个UIColor的属性。这里我们使用Category,不用疑问,对,是使用Category为CALayer添加一个UIColor的属性。

CALayer+Addition.h

#import <QuartzCore/QuartzCore.h>

#import <UIKit/UIKit.h>

@interface CALayer (Additions)

@property(nonatomic, strong) UIColor *borderColorFromUIColor;

- (void)setBorderColorFromUIColor:(UIColor *)color;

@end

CALayer+Addition.m

#import "CALayer+Additions.h"

#import <objc/runtime.h>

@implementation CALayer (Additions)

//static const void *borderColorFromUIColorKey = &borderColorFromUIColorKey;

//@dynamic borderColorFromUIColor;

- (UIColor *)borderColorFromUIColor {

return objc_getAssociatedObject(self, @selector(borderColorFromUIColor));

}

-(void)setBorderColorFromUIColor:(UIColor *)color

{

objc_setAssociatedObject(self, @selector(borderColorFromUIColor), color, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

[selfsetBorderColorFromUIborderColorFromUIColor];

}

- (void)setBorderColorFromUI:(UIColor *)color

{

self.borderColor = color.CGColor;

//    NSLog(@"%@", color);

}

这样就成功为CALayer添加了borderColorFromUIColor属性,并且在key path里可能成功设置该属性,为按钮设置边框颜色了。

实现效果

时间: 2024-10-11 04:08:07

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

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来进行布局,那么这时候怎么来使用

Python3 Tkinter基础 Button bg 设置按钮的背景颜色

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: import tkinter as tk #面向对象的编程思想 class APP : def __init__(self,master) : frame = tk.Frame(master) #框架,可是到底什么是框架呢? frame.pack() #自动选定

第三章,设置按钮边框(Android)

这种方法是通过层叠几个图片实现边框效果. 在res文件夹下的drawable文件夹下(没有就新建)建一个xml文件选layer-list. <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 与顺序有关,最外层一定要放在最前面,最里层放在

nodeJS 利用xlsx导出插件导出excel文件 (可以设置excel单元格颜色/宽度)

var XLSX = require('xlsx'); var _exports = {}; module.exports = _exports; _exports.exportXls = function(data) { var ws = { s:{ "!row" : [{wpx: 67}] } }; ws['!cols']= []; for(var n = 0; n != data[0].length; ++n){ ws['!cols'].push({ wpx: 170 }); }

Python连载60-Tkinter布局、按钮以及属性详解

一.Tkinter? 1.组件的大致使用步骤 (1)创建总面板 (2)创建面板上的各种组件: i.指定组件的父组件,即依附关系:ii.利用相应的属性对组件进行设置:iii.给组件安排布局. (3)同步骤2相似,创建好多个组件: (4)最后,启动总面板的消息循环 import tkinter ? base = tkinter.Tk() base.wm_title("Label Test")#负责标题 lb = tkinter.Label(base,text="Python la

css边框属性

border 在一个声明中设置所有的边框属性: border-bottom 在一个声明中设置所有的下边框属性: border-bottom-color 设置下边框的颜色: border-bottom-style 设置下边框的样式: border-bottom-width 设置下边框的宽度: border-color 设置四条边框的颜色: border-left 在一个声明中设置所有的左边框属性: border-left-style 设置左边框的样式了: border-left-width 设置左

css使用到的边框属性

border 在一个声明中设置所有的边框属性. border-bottom 在一个声明中设置所有的下边框属性. border-bottom-color 设置下边框的颜色. border-bottom-style 设置下边框的样式. border-bottom-width 设置下边框的宽度. border-color 设置四条边框的颜色.border-left 在一个声明中设置所有的左边框属性. border-left-color 设置左边框的颜色. border-left-style 设置左边框

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

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

1-10(退出键盘,设置按钮的背景图,transform属性,imageView序列帧动画,九宫格算法...)

(1-10目录) 1.取得2个文本输入框的值 2.退出键盘 3.设置按钮的背景图 4.执行动画 5.手动创建按钮以及设置按钮的一些基本属性 6 transform属性 7.imageView序列帧动画 8.九宫格算法 9.通过xib创建局部控件,利用模型封装加载数据 10设置状态栏的样式为白色 { 扯淡环节: 工作这么久了, 发现一些细节有时候总是忽略, 现在就把我刚接触时的知识点给整理出来!, 没事自己看看, 也分享给大家! 分享,创造快乐!哈哈 xq每天都生活在快乐当中, 愿你们也是! }