使用xcode storyboard设置按钮圆角方法
来源:互联网 发布:php 解析html 编辑:程序博客网 时间:2024/05/16 06:00
通过storyboard的 运行时属性runtime attribute,可以对Button设置圆角或者边框
1.很多人都知道,通常设置一个 Button后者其他的UIView子类的圆角,需要使用如下的语句
<span style="font-size:18px;">self.button.layer.cornerRadius=10;//即可</span><span style="font-size:18px;">说明:这会用到layer图层的属性来实现,原因是在一个 UIView子类中</span>UIView本身只是用来监听事件,而真正显示内容的是layer图层,这当然也包含动画的实现,比如我们对一个view做动画
实际上也是对layer做的动画;
2.但是,总有一些有好奇心的人想知道如何通过,storyboard/xib 设置 一个button或者UIView的圆角:
通过我的研究,我找到一个很强大的方法,可以设置storybord无法添加的属性,比如圆角,或者边框
这个方法就是runtime Attribute运行时属性,也就是在 运行时你设置的这个属性才会起作用,这样体现了oc语言的动态特性和运行时(runtime)的强大
创建一个button然后,设置好约束(以免Button"消失"),如下图,然后选中button 选择右边的inspector
如上图,点击+号即可添加 一个Button相关的属性,这个属性,可以是在storyboard上没有的属性,此方法类似于代码的效果,每一个属性都有与之对应的值(对象),
如数字对应的值类型是 NSNumber,如下图,填入到runtime attrite中的属性名不要写错,否则运行时会崩溃
最终在模拟器上可以看到你想要的圆角啦;
遇到的问题:这里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里可能成功设置该属性,为按钮设置边框颜色了。
- 使用xcode storyboard设置按钮圆角方法
- 使用xcode storyboard设置按钮圆角方法
- 使用xcode storyboard设置按钮圆角方法
- 使用xcode storyboard设置按钮圆角方法
- 使用xcode storyboard设置按钮圆角方法
- 使用xcode storyboard设置按钮圆角方法
- xcode storyboard设置按钮圆角方法
- 使用xcode在storyboard里设置按钮圆角的方法
- xcode storyboard设置按钮圆角
- storyboard设置圆角按钮
- 使用xcode设置按钮圆角
- 使用storyboard设置UIButton的圆角
- 使用storyboard设置按钮边框属性(颜色,宽度,圆角)
- XCode在Storyboard中设置视图的圆角等属性
- xcode 5.1.1 storyBoard 在二级页面写按钮不崩溃的方法
- iOS 使用storyboard设置UIButton 和UILabel 的圆角
- iOS 设定UIButton 按钮圆角:纯代码方法 和 storyboard中设定
- 设置圆角按钮的方法
- 【智能路由器】动态域名(基于netfilter编程的DNS数据伪造)
- oracle忘记sys密码
- Linux中查看转换文件编码
- leetcode Evaluate Reverse Polish Notation
- QT5 检测 usb设备插拔
- 使用xcode storyboard设置按钮圆角方法
- linux 安装 7-Zip
- 阅读《驯服烂代码》
- Genymotion
- python爬取网易评论
- Javascript--typeof
- Spring-hibernate-事务处理详解及案例<六>
- php mysql更新数据库接入超链接问题
- UVALive 7272 Promotions(拓扑排序)