Swift Bezier Curve View
贝塞尔曲线非常适合指向界面中的对象,用于说明文稿和帮助屏幕
创建和编辑箭头以照亮您的界面,并在 Xcode Storyboard 和 Interface Builder 中进行视觉预览。
技术讨论
在 Interface Builder 中,放置一个 BezierCurveView
并在其内部放置两个 BezierCurveHandle
。
BezierCurveView
表示绘制空间。它可以与UIWindow
一样大,以防止曲线剪切。BezierCurveHandle
表示由 Cubic Bezier Curve 所需的两个处理程序。它采用BezierHandleProtocol
,该协议提供了控制点信息。
BezierCurveView
+ 2 BezierCurveHandle
的组合在 Interface Builder 中提供实时预览,具有前所未有的灵活性:[图像链接]。因为 BezierCurveHandle
本身就是一个 UIView
,它可以由 AutoLayout 约束控制,并因此能够自动适应大小和方向的变化,无需 0 行代码。由于这些处理程序本身是对 BezierHandleProtocol
的扩展,您可以将任何 UIView
子类定制为控制处理程序。
备注
- 确保一个
BezierCurveView
包含恰好两个采用BezierHandleProtocol
的子视图,以便进行任何绘图 - 在大多数情况下,
BezierCurveView
和BezierCurveHandle
的背景颜色应该是清晰的 BezierCurveView
在其frame
被更新时将进行刷新,提供动态动画:[图片链接][1] (重播)
[
贝塞尔曲线视图属性IBInspectable | 作用 |
---|---|
lineWidth |
贝塞尔曲线的粗细;默认为1.5 |
tintColor |
曲线的颜色;如果不存在,则默认为黑色 |
贝塞尔手柄视图属性
IBInspectable | 作用 |
---|---|
dx |
控制点的水平分量;默认是0 |
dy |
控制点的垂直分量;默认是-10.0(控制点位于锚点下方10.0像素处) |
shape |
以下之一:none 、arrowHead 、circle 或 disc ,默认是 none |
size |
shape的尺寸:箭头的长度,圆和圆盘的半径(†);默认是15.0 |
(†) 贝塞尔曲线的端点是调整的,从形状的末端开始
安装
使用 Cocoapods 或直接包含源文件。首选 Cocoapods。
API 兼容性:版本4.x引入了 BezierHandleProtocol
、BezierHandleView
和 BezierCurveView
,弃用了3.x 的 BezierCurveArrowView
。
示例
在 BezierCurveExample
目录下运行 pod install
,打开 BezierCurveExample.xcworkspace
并运行。
获取帮助
在 Stack Overflow 上搜索 BezierCurveView 的答案,或提出问题供社区解答。您也可以 联系作者。