在Storyboard中设置控件的边框颜色没有效果

问题描述

如下图所示,如果我们想在Storyboard中设置控件的某些属性,可以通过Key Path设置属性的Value来实现.
结果在经过一系列设置后发现并没有效果.


通过Key Path设置圆角.png

解决问题

查看代码的实现方式,我们可以发现layer.borderColor需要传递的是一个CGColor,效果没有出来的原因就是这个.

    self.layer.cornerRadius = 4;
    self.layer.borderWidth = 1;
    self.layer.borderColor = [UIColor lightGrayColor].CGColor;
    self.layer.masksToBounds = YES;

随后在google上发现了一个解决方法:创建CALayer的分类,全部代码放上

#import <QuartzCore/QuartzCore.h>

@interface CALayer (BorderColor)

@end


#import "CALayer+BorderColor.h"

@implementation CALayer (BorderColor)


- (void)setBorderColorWithUIColor:(UIColor *)color
{
    
    self.borderColor = color.CGColor;
}

@end

最后将Storyboard中设置的layer.borderColor修改为layer.borderColorWithUIColor就可以了.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,566评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 6,306评论 0 13
  • Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Laye...
    小猫仔阅读 3,802评论 1 4
  • 1.xcode5和xcode7区别 1.xcode7没有Frameworks文件夹,xcode7内部会自动帮你导入...
    彼岸的黑色曼陀罗阅读 526评论 0 2