【发布时间】:2020-08-18 23:26:36
【问题描述】:
我一直在做有关贝塞尔路径的教程,但我对可定制性和按钮有疑问。 据我了解,您的按钮需要一个矩形框架,但我想要实现的是弧形按钮,就像我用 Sketch 制作的这张图片一样。 我希望每个弧形部分都是一个按钮,但显然如果每个弧形部分都被框在一个矩形中,那将是不可能的......
我怎样才能做到这一点? 我按照 Ray Wenderlich 教程(这里:https://www.raywenderlich.com/8003281-core-graphics-tutorial-getting-started)设法制作了一条弧线,但我想像我的图片一样细分我的弧线,并将所有这些作为单独的按钮。
谢谢!
【问题讨论】:
-
您展示的形状是“何时不使用贝塞尔曲线”的完美示例,无论出于何种原因,您不只是使用一个圆,切出另一个圆,还有一些旋转白条?因为如果您使用普通的简单基元,这对于命中检测来说几乎是微不足道的形状。 (检查 r1 和 r2 之间的命中是否相对于中心,如果是,则使用
atan2(dy,xy)获取角度,并查看表示您在哪个段。完成) -
@Mike'Pomax'Kamermans 我对 Swift 很陌生,所以原因很简单,因为我缺乏经验,我还不知道解决这个问题的最佳方法。我会尝试找到关于命中检测的 tuts,(特别是因为每个弧将是不同的颜色并且命中的会稍微大一点),但是如果你对处理那些你正在谈论的原始形状有任何建议我'我全力以赴学习!谢谢
-
我不确定您还需要在已链接到的教程中添加什么。如果您已经根据中心的角度绘制弧线,则命中检测是相同的:检查触摸发生的位置作为中心的极坐标(您可以使用
atan2函数,它与@ 一样通用987654326@ 或cos),如果角度是您将事物着色为红色的角度,并且如果幅度(“长度”)介于内半径和外半径之间,则按下按钮。记得展示你的代码,这样人们就可以在你已经编写的内容的基础上发表评论。
标签: ios swift button shapes bezier