ios – 在没有子类化的情况下在UIView中绘制UIBezierPaths?

前端之家收集整理的这篇文章主要介绍了ios – 在没有子类化的情况下在UIView中绘制UIBezierPaths?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是使用UIBezierPaths绘制形状的新手.到目前为止我发现的所有示例都涉及首先对视图进行子类化,然后重写drawRect:方法并在其中进行绘制,但我无法找到任何绝对确定的说明是否这是唯一的方法在UIView中绘制UIBezierPaths,或者这只是最务实的方式.

有没有其他方法(除了调配)在UIView中绘制UIBezierPath而不进行子类化?

解决方法

在不使用drawRect的情况下绘制贝塞尔路径的另一种方法是使用CAShapeLayers.将形状图层的path属性设置为从bezier路径创建的CGPath.将形状图层添加为视图图层的子图层.
UIBezierPath *shape = [UIBezierPath bezierPathWithOvalInRect:self.view.bounds];
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    shapeLayer.path = shape.CGPath;
    shapeLayer.fillColor = [UIColor colorWithRed:.5 green:1 blue:.5 alpha:1].CGColor;
    shapeLayer.strokeColor = [UIColor blackColor].CGColor;
    shapeLayer.lineWidth = 2;

    [self.view.layer addSublayer:shapeLayer];
原文链接:/iOS/333840.html

猜你在找的iOS相关文章