访问UIView上绘制的UIBezierPath

时间:2015-11-05 17:55:23

标签: ios swift uiview uibezierpath

我已经绘制了一个自定义形状param2,其中我使用以下答案将UIView方法覆盖为三角形:The Stackoverflow answer

现在我想在用户点击它时突出显示该三角形。我想我可以用不同的颜色在它上面绘制另一个三角形,但我希望此视图稍后执行其他任务。自定义视图的边界与另一个视图重叠,因此我不能只更改整个drawRect(_:)背景颜色,只能更改UIView's背景颜色。如果查看附加图像,则所选视图的背景将覆盖附近的视图。如何仅访问UIBezierPath's图层并更改其颜色?

The overlapping background is the top right view.

1 个答案:

答案 0 :(得分:0)

为视图提供轻击手势识别器。现在你知道什么时候被点击了。您可以使用命中测试和您对形状的了解来了解水龙头是否在三角形内。

  

如何只访问UIBezierPath的图层并更改它的颜色?

如果您使用过CAShapeLayer方法,那么您可以这样做;所有你需要做的就是更改图层的fillColor(如果这是突出显示对你意味着什么)。

但是既然你选择使用drawRect:,就没有“UIBezierPath的图层”。您必须致电setNeedsDisplay,从而再次调用drawRect: - 这次,您将绘制填充的三角形(或任何突出显示方式)。