在xib/storyboard中通过KVC设置view/控件的圆角

来源:互联网 发布:12306泄露数据库 网盘 编辑:程序博客网 时间:2024/04/28 15:04

KVC在开发中是非常实用的方法, 特别是在runtime中能实现某些酷炫的功能, 以后有机会再介绍和交流.
我们这里要讲的是在xib或者storyboard中, 如何实现控件圆角的设置.

我们都知道, layer是屏幕上的一个矩形区域,在每一个UIView中都包含一个根CALayer,在UIView上的所有视觉效果都是在这个Layer上进行的.只要继承自UIView的都有layer属性.
我们可以通过代码设置View或者button等控件的圆角:

//设置layer的圆角self.myView.layer.cornerRadius=10;//超过子图层的部分裁减掉self.myView.layer.masksToBounds=YES; 

但如果view或者控件是通过xib/storyboard创建的, 这个时候直接设置属性就比代码方便得多了.

这里写图片描述

有时候在开发中, 会遇到这种情况:

  1. 给button设置背景色时,用上述KVC代码cornerRadius有效果;但是给button设置背景图片后,上述代码没效果了;
  2. 在Label中设置同样也没有效果…(图中聊天界面的右上角标是label)

这里写图片描述
那么我们可以直接用方法

self.myButton.layer.cornerRadius=5;self.myButton.masksToBounds=YES; 

普及一下:

  • clipsToBounds
    是指视图上的子视图, 如果超出父视图的部分就截取掉
  • masksToBounds
    是指视图的图层上的子图层, 如果超出父图层的部分就截取掉

tip:
大家都知道在Layer中设置的属性(masksToBounds…)其实是没有真正对控件进行操作, 只是一种显示出来的效果而已, 相对性能高一点;
而clipsToBounds是直接进行了操作, 会使子控件超出父控件的范围部分无法交互, 相对性能会低一点.
所以如何取舍要看实际开发需求了~~~

btw, 在xib中设置就是这样:
这里写图片描述

那么设置就成功啦, 给大家看看用这个方法设置了Label的圆角效果..

Label裁圆角显示结果

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 2岁宝宝不刷牙怎么办 二岁宝宝牙不好怎么办 小孩一刷牙就吐怎么办 孩子一刷牙就吐怎么办 两岁宝宝闹人怎么办 3岁宝宝不愿意刷牙怎么办 孩子牙没掉长出新牙来了怎么办 大孩子不洗澡怎么办啊 2岁宝宝不爱洗澡怎么办 手指画颜料变干怎么办 刮画纸画错了怎么办 电脑绘的图不能扩大怎么办 华腾同步课堂忘记密码怎么办 被缝纫机针扎了怎么办 大小孩抢了孩子玩具怎么办 无锡天一初中考不进天一高中怎么办 校考一个都没过怎么办 拼音会拼不会写怎么办 20岁出头很迷茫怎么办 出了社会很迷茫怎么办 2018年现在会计工作难找怎么办 开广告店没生意怎么办 淘宝没有7天退怎么办 吃了松香的鸭子怎么办 理科生考电影专业研究生怎么办 pr导出视频很慢怎么办 8岁儿童头发稀少怎么办 八岁儿童版头发怎么办 小孩子有一块不长头发怎么办 小孩子头发上长癣怎么办 一岁多头发少怎么办 孩子头发长得慢怎么办 小孩头发长得慢怎么办 头发出油不洗头怎么办 青少年掉头发很厉害怎么办 洗了冷水头头痛怎么办 头发烫染后干枯毛躁怎么办 扎不起来的短发怎么办 发际线掉头发怎么办偏方 头上脓包掉头发怎么办 小孩头发少又黄怎么办