为什么80%的码农都做不了架构师?>>>   

在项目中经常需要给view button 等 加边框 每次都要自己堆代码 感觉很费劲

self.addWayBtn.layer.borderWidth=1;
self.addWayBtn.layer.borderColor=[UIColor colorWithRed:255/255.0 green:111/255.0 blue:1/255.0 alpha:1].CGColor;

这两句代码 写了一遍又一遍 实在是烦!既然圆角都可以用layer.cornerRadius在xib中keypath中写出那么为什么不把layer.borderColor也写进去呢

因为keypath 里边只有color所以我们就要用到catagory了

这里提供两种方式 都可以做到

方法1:

.h

@property (nonatomic,strong)UIColor*borderUIColor;

.m

-(void)setBorderUIColor:(UIColor *)color
{self.borderColor=color.CGColor;
}
-(UIColor*)borderUIColor
{return [UIColor colorWithCGColor:self.borderColor];
}

此时就可以使用属性啦:

方法2:

.h

@property(nonatomic, strong) UIColor *borderColorFromUIColor;
- (void)setBorderColorFromUIColor:(UIColor *)color;

.m
(记得引入头文件#import <objc/runtime.h>)


- (UIColor *)borderColorFromUIColor {return objc_getAssociatedObject(self, @selector(borderColorFromUIColor));}-(void)setBorderColorFromUIColor:(UIColor *)color{objc_setAssociatedObject(self, @selector(borderColorFromUIColor), color, OBJC_ASSOCIATION_RETAIN_NONATOMIC);[self setBorderColorFromUI:[self borderColorFromUIColor]];}- (void)setBorderColorFromUI:(UIColor *)color{self.borderColor = color.CGColor;NSLog(@"%@", color);}

此时也可以使用了

你get到了么?

转载于:https://my.oschina.net/rainwz/blog/680553

使用catagory类别给控件加边框相关推荐

  1. android studio自定义边框,Android Studio给各种控件加边框的操作方法

    Android Studio给Textview,EditText控件加边框 如图所示,给一些edittext,TextView,还有一些控件组,进度条加上一个粉红色的边框. 看着很好看,其实非常简单, ...

  2. Android Studio给各种控件加边框

    Android Studio给Textview,EditText控件加边框 如图所示,给一些edittext,TextView,还有一些控件组,进度条加上一个粉红色的边框. 看着很好看,其实非常简单, ...

  3. java 给控件添加边框_Android UI 利用Drawable Shape给控件加边框/立体效果

    在软开中,经常需要对原生的控件UI进行修改,最近项目由于UI没到位,所有有些带边框的有立体效果的UI要自己实现,实现方法是用XML写Shape. ListView Items加边框构成立体效果: 通过 ...

  4. android聚焦时如何给控件加边框,edittext设置获得焦点时的边框颜色

    第一步:为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这 ...

  5. paip.gui控件tabs控件加载内容的原理以及easyui最佳实现

    paip.gui控件tabs控件加载内容的原理以及easyui最佳实现 //tabs控件的加载 同form窗体一样,俩个方式 两个方式:一个是url,简单的文本可以使用这个,不适合事件的情形.. 一个 ...

  6. 在Paint事件中绘制控件(边框)

    在Paint事件中绘制控件(边框) 单纯的自己记录,将来会继续添加,侥幸被大家发现了的话请不要太鄙视... private void panel4_Paint(object sender, Paint ...

  7. 虚拟列表控件---加载大数据行

    平常所用到的列ListView/ListCtrl控件,都是只有行至几百行数据,直至今日,在项目中遇到了上10W量级数据条,终于感觉到普通加载的艰辛,遂到网上乱找一通,发现大同小异,转载了这篇比较详细的 ...

  8. Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递

    1.在布局文件中加WebView控件,在java中获取WebView对象. 2.加载本地html文件. webView.loadUrl("file:///android_asset/andr ...

  9. 利用aspnetPager控件加存储过程实现对gridview的分页

    gridview是asp.net常用的显示数据控件,对于.net开发人员来说应该是非常的熟悉了.gridview自带有许多功能,包括分页,排序等等,但是作为一个.net开发人员来说熟练掌握利用存储过程 ...

最新文章

  1. mac升级后虚拟机无法启动_使用了自家M1处理器后,苹果新一代Mac迎来三大重点升级...
  2. 大厂不一定要进,算法必须要学!精选算法文章 89 篇
  3. python3随笔-相关系数
  4. FE.ENV-manjaro虚拟机配置和常见前端工具安装
  5. 《高性能JavaScript》第五章 字符串和正则表达式
  6. echart关系树状图_干货 | 25个常用Matplotlib图的Python代码
  7. tensorflow lstm从隐状态到预测值_机器学习100天-Day2405 循环神经网络RNN(LSTM)
  8. 神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)
  9. 水滴公司再回应“线下违规”:核心是公司的管理问题
  10. matlab 曲面拟合_利用python进行曲面拟合并进行3D显示
  11. linux下怎么查看一个动态库链接了其他哪些库
  12. 系统科学专业 计算机,2018年北京市培养单位数学与系统科学研究院863计算机学科综合(专业)之计算机操作系统考研核心题库...
  13. linux常用命令详解和用法_详解Linux shell用法中常用命令--read(传参)
  14. 批改网作文提交时分析不出来_推荐一款免费英语写作批改软件
  15. GAN生成图像质量的两个评价指标——IS与FID
  16. Python爬虫豆瓣T250电影
  17. shell输出毫秒_Shell获取毫秒时间
  18. java 串行_java串行化
  19. 创建一个xposed模块Demo
  20. c语言等级分制度的作用,使用C语言怎么对学生的成绩等级进行划分

热门文章

  1. Fuzzy SVM with a new fuzzy membership function--文献翻译
  2. 微分几何与广义相对论教程
  3. 网卡驱动收包代码分析之 page reuse
  4. Docker swarm搭建及常用命令、yml文件
  5. Python自动化:批量合并某个文件夹内子文件夹的所有Excel,并新增两列分别备注文件路径和子sheet名
  6. 算法设计与分析——动态规划
  7. python语音验证码识别_python语音验证码接口_python语音接口_python语音验证码_语音验证码代码示例_互亿无线...
  8. syntaxerror:_解决SyntaxError:解析时出现意外的EOF
  9. 微信开发-业务域名、JS接口安全域名、网页授权域名
  10. 多层神经网络的局部最小值与全局最小值——The problem of convexity