首页 > 解决方案 > 如何在 Swift 中的方形 UIBezier 中绘制角曲线?

问题描述

我使用 UIBezier 路径创建了一个正方形,我知道我们可以在贝塞尔路径中使用圆角矩形函数绘制圆角矩形,但我面临的问题是不同的。每次我为分配贝塞尔路径的 CAShapeLayer 提供角半径时,它都会删除贝塞尔路径的某些部分。

这就是为什么我认为我应该使用曲线在角落上绘制贝塞尔曲线。CAShapeLayer 采用我已经在 Storyboard 中添加的 UIView 的宽度和高度。

我尝试将角半径添加到 shapeLayer(其中分配了 bezierPath.cgPath),然后将图层蒙版到边界。它确实使我的贝塞尔正方形的角变圆了,但它从贝塞尔中删除了一些尖尖的提示。我希望所有 4 个角都是圆形的。

let customShapeLayer = CAShapeLayer()
customShapeLayer.path = createBezierPath().cgPath
customShapeLayer.cornerRadius = 6.0
customShapeLayer.maskToBounds = true

当我不将 shapelayer 屏蔽到边界时,我得到的输出是这样的:

在此处输入图像描述

当我将 shapelayer 屏蔽到边界时,这就是我得到的:

在此处输入图像描述

(这只是我所看到的粗略表示,它可能看起来不像圆角)

任何帮助将不胜感激!

标签: swiftuibezierpathcashapelayer

解决方案


推荐阅读