iOS 细碎iOS DeveloperiOS 开发

ios中使用storyboard或者Xib给View设置边框属性

2016-04-07  本文已影响7769人  单腿行走的大象

很多技术人员习惯于用纯代码设置Button或者其他View的边框属性,

eg: UIView* view = [[UIView alloc]init];

     view.layer.borderWidth=2.0;

     view.layer.cornerRadius=5.0;

     view.layer.borderColor= [UIColorredColor].CGColor;

但是现在也有相当一部分人喜欢在自定义控件的时候,使用Xib,或者用sb来进行布局,那么这时候怎么来使用storyboard或者Xib给View设置边框属性就无从下手了,接下来提供的解决方法希望能给予大家帮助.

通过storyboard的运行时属性runtime attribute,可以对Button设置圆角,边框和边框颜色.(xib同理)

找到设置运行时属性的地方

layer.borderWidth和layer.conerRadius可以顺利的设置成功,但是边框的颜色不一定好使,这时候需要给layer添加一个分类.

然后在你的分类.h文件中添加一个属性

在分类的.m文件中实现如下方法

其实这里添加一个分类的作用就是把你设置的UIColor转化为CGColor

最后设置好你的边框宽度,颜色,圆角.就可以愉快的玩耍了

如果你要设置某一控件的圆角就不建议使用layer来设置了,因为使用图层过量会有卡顿现象, 特别是弄圆角或者阴影会很卡, 如果设置图片圆角我们一般用绘图来做:

- (UIImage *)obtainCircleImage {

UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);

// 获取上下文

CGContextRef ref = UIGraphicsGetCurrentContext();

// 设置圆形

CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);

CGContextAddEllipseInRect(ref, rect);

// 裁剪

CGContextClip(ref);

// 将图片画上去

[self drawInRect:rect];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return image;

}

这个方法就是设置圆角图片, 效率很高, 不会造成卡顿现象, 大家要把这个方法单独放到分类中使用.

上一篇 下一篇

猜你喜欢

热点阅读