Xib、Nib、Storyboard下修改控件边框颜色、大小、圆角

问题:

今天有一个页面有很多uibutton,所以就用xib搭了界面,然后问题来了,如何在xib下修改控件的边框颜色和大小、圆角?我之前知道利用IB面板下的“UserDefined Runtime Attributes”(如下图),然后问题来了,设置圆角可以成功设置,但是设置uibutton的边框颜色不行。然后一直百度找到的方法都是跟我的做法一样,而且不行,然后想到我可以Google,好吧,第一条就出来答案了····

IB 下UserDefined Runtime Attributes 面板

原因:

找到原因在于borderColor接受的参数是CGColor类型,而此处的Color为UIColor,所以导致注入时参数类型不一致

解决方法:

自定义一个CALayer类别,然后使用这个属性

//CALayer+RumtimeAttribute.h

#import

@interfaceCALayer (RumtimeAttribute)

@property(nonatomic,assign)UIColor* borderIBColor;

@end

//CALayer+RumtimeAttribute.m

#import"CALayer+RumtimeAttribute.h"

@implementationCALayer (RumtimeAttribute)

- (void)setBorderIBColor:(UIColor*)borderIBColor

{

self.borderColor= borderIBColor.CGColor;

}

- (UIColor*)borderIBColor

{

return[UIColor colorWithCGColor:self.borderColor];

}

@end

自定义的时候要注意borderIBColor属性的setter和getter方法的内容不要错了,然后可以完美运行

扩展:在swift 2.0可以用一下方法(我没有试)

import Foundation

extension CALayer{

//解决IB中runtime attribute中layer.borderColor不能转换UIColor为CGColor

var borderColorFromUIColor:UIColor{

set(color){

self.borderColor = color.CGColor;

}

get{

returnUIColor(CGColor:self.borderColor)

}

}

}

最后感谢大神们:Is it possible to set UIView border properties from interface builder? Expanding User-Defined Runtime Attributes in Xcode with Objective-C

这里有比较有意思的扩展哦,有兴趣的可以看看  Xcode6快捷键、小技巧与xib圆角设置

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨龙飞前端

scrollto 到指定位置

2474
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2496
来自专栏hbbliyong

WPF Trigger for IsSelected in a DataTemplate for ListBox items

<DataTemplate DataType="{x:Type vm:HeaderSlugViewModel}"> <vw:HeaderSlug...

4054
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

1960
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2612
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4798
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3035
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4788
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2667
来自专栏魂祭心

原 canvas绘制clock

3994

扫码关注云+社区