YKCornersView 0.1.1

YKCornersView 0.1.1

YakirLove 维护。



YKCornersView

示例

要运行示例项目,首先克隆仓库,然后从示例目录中运行 pod install

要求

安装

YKCornersView 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中

pod 'YKCornersView'

支持的功能

目前版本支持以下功能:

  1. 自定义圆角方向
  2. 自定义边线颜色和宽度
  3. 自定义内部填充色

使用的技术

UIBezierPath + CAShapeLayer 绘图

使用 UIBezierPath + CAShapeLayer 绘制圆角、边线和填充色,核心代码如下:

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:self._radiusCorner cornerRadii:CGSizeMake(self._radiusFloat, 0)];
self.shapeLayer = [CAShapeLayer layer];
self.shapeLayer.path = maskPath.CGPath;
self.shapeLayer.lineWidth = self._lineWidth;
self.shapeLayer.strokeColor = self._lineColor.CGColor;
self.shapeLayer.fillColor = self._fillColor.CGColor;
self.shapeLayer.frame = self.bounds;
[self.layer addSublayer:self.shapeLayer];

类别添加属性

类别无法直接添加属性,但是使用runtime可以实现,部分代码如下:

- (CGFloat)_radiusFloat {
return [objc_getAssociatedObject(self, &radiusFloatKey) floatValue];
}

- (void)set_radiusFloat:(CGFloat)radiusFloat {
objc_setAssociatedObject(self, &radiusFloatKey, [NSNumber numberWithFloat:radiusFloat], OBJC_ASSOCIATION_COPY);
}

链式方法

需要设置的属性达到5个,一个一个设置要占5行,还是链式的写法,一行搞定比较爽快:

//圆角的方向
- (UIView * (^)(UIRectCorner))radiusCorner;
//圆角的弧度
- (UIView * (^)(CGFloat))radiusFloat;
//边线长度
- (UIView * (^)(CGFloat))lineWidth;
//边线颜色
- (UIView * (^)(UIColor *))lineColor;
//填充颜色
- (UIView * (^)(UIColor *))fillColor;

使用方法:

UIView *oneView = [[UIView alloc] init];
[self.view addSubview:oneView];
[oneView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(100);
make.centerX.equalTo(self.view);
make.width.mas_equalTo(200);
make.height.mas_equalTo(40);
}];
oneView.radiusCorner(UIRectCornerTopLeft).radiusFloat(15).fillColor([UIColor redColor]).lineColor([UIColor blueColor]).lineWidth(0.5);
[oneView manualDrawing];

作者

YakirLove,

许可证

YKCornersView 在MIT许可下可用。更多信息请参阅LICENSE文件。