iOS之用xib给控件设置圆角、边框效果

转自:https://www.cnblogs.com/zhun/p/5616540.html

 

xib中为各种控件设置圆角

  • 通过代码的方式设置
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *myView;
@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    self.myView.layer.masksToBounds = YES;
    self.myView.layer.cornerRadius = 10;
}
  • 通过xib快速设置圆角
    • 利用User Defined Runtime Attributes 进行设置

身份检查器

  • 详细步骤介绍
    • 点击UI控件
    • 点击 Xcode 右侧上方身份检查器(左起第三个按钮)
    • 找到 Runtime Attributes 属性,通过Key Path 和 Value 进行设置
  • 设置圆角需要到的Key Path:
    • layer.cornerRadius ,注意该 key 对应 Value 的 type 应该设置为 String
    • layer.masksToBounds ,注意该 key 对应 Value 的 type 应该设置为 Boolean , 当右侧出现对号时为YES
    • 注意:经过测试,UILabel 必须设置设置 masksToBounds 这一键值对,才会出现圆角效果;UIButton、UIView、UIImageView 只需设置 layer.cornerRadius 这一键值对就可实现圆角效果

Xib 为控件设置边框效果

  • 通过代码方式进行设置
- (void)viewDidLoad {
    [super viewDidLoad];

    self.myView.layer.borderColor = [UIColor redColor].CGColor;
    self.myView.layer.borderWidth = 2;
}
  • 通过xib快速设置边框
    • 所用方法和上面所讲Xib设置圆角基本相同,唯一不同的就是设置 key Path 键值对
  • 设置边框需要到的Key Path:
    • layer.borderWidth ,注意该 key 对应 Value 的 type 应该设置为 String
    • layer.borderColor , 注意该 key 对应 Value 的 type 应该设置为 Color

      当我们满怀欣喜的运行程序的时候,你会发现结果并不会如你所想,边框效果并没有出现,那么难道是我们的方法不对么?

  • 不知道你有没有注意到 layer.borderColor 对应值得类型:Color;经常用代码进行边框设置的你,一定记得我们设置的颜色类型为CGColor,不错问题就出在了这上面
    • 按照上述方法我们设置的边框颜色为 UIColor 类型,当然不会起作用了啊。
  • 下面就给出一种简便的解决方法,我们只需要为 CALayer 创建一个分类就可以了,具体代码如下:
CALayer+ZZYXibBorderColor.h

#import <QuartzCore/QuartzCore.h>
@interface CALayer (ZZYXibBorderColor)

@end

CALayer+ZZYXibBorderColor.m

#import "CALayer+ZZYXibBorderColor.h"
#import <UIKit/UIKit.h>

@implementation CALayer (ZZYXibBorderColor)

- (void)setBorderColorWithUIColor:(UIColor *)color
{

    self.borderColor = color.CGColor;
}

@end

注意此时,设置边框颜色就需要用 layer.borderColorWithUIColor来代替 layer.borderColor
注意:当我们使用Xib设置控件圆角、边框的时候,如果将key Path写错,系统不会报错,但是运行不会实现理想的效果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值