如何在ios中创建三角形对象

Posted

技术标签:

【中文标题】如何在ios中创建三角形对象【英文标题】:How to create triangle shaped objects in ios 【发布时间】:2017-01-31 19:43:05 【问题描述】:

我是 ios/iphone 开发新手。

我想显示一个由 3 种可能的线连接样式组成的视图,如下所示。理想情况下,我会有 3 个类似于下面 3 个图纸的对象,然后单击每个对象将选择适当的连接。

是否可以使用 UIButton 来实现这些对象中的每一个,或者绘制并找出用户触摸了哪个对象更好?

【问题讨论】:

【参考方案1】:

您当然可以使用三个自定义按钮,并让三个斜接图中的每一个都成为一个按钮的图像。

在我看来,为了获得最佳效果,您应该学习在代码中绘制并在代码中实际绘制斜接图 - 将它们中的每一个绘制到 UIImage 中,然后使每个 UIImage 成为一个按钮。

【讨论】:

我可以画多条线,但是如何在线条之间填充一些颜色? 我认为从问题中的图像中我的意思很明显:我可以绘制轮廓线和内线,但是如何在轮廓之间画黑色(再次数字应该阐明什么我的意思是) @JennyToy 您可以尝试使用给定颜色旋转 CGRect。例如查看此链接***.com/questions/18710933/…。更好的方法可能是像***.com/questions/30650343/triangle-uiview-swift 那样画一个三角形 我在任何“轮廓”中都看不到任何黑色。我看到黑色粗线,抚摸着。基本上,这是绘制任何这些图纸的单行代码(好吧,可能是四行代码)。问题是你对如何在代码中绘图一无所知? “对于第一个图像(斜接连接),它是 8 条直线” 对,但我告诉你不,它是 4 条直线,每条直线都被描边很粗。其他两张图纸也是如此,因为在每种情况下,斜接都是一种设置,是为您完成的。【参考方案2】:

您可以使用几种方法(可能更多)。

您可以创建自定义视图并为每个视图附加一个形状层,配置所需的连接,并在每个视图中安装相同的路径。然后,您需要附加点击手势管理器。

不过,最简单的方法是简单地使用带有不同连接的静态图像的自定义按钮。然后你只需像往常一样为每个按钮附加一个动作。

我会推荐带有自定义图像的按钮。很简单,很容易,你最终会得到表现正常的按钮。

【讨论】:

是的。我应该说您可以创建一个自定义视图并实现layerClass() 方法以使视图的支持层成为CAShapeLayer。澄清一下,图层有CGPaths,而不是UIBezierPaths。 (但UIBezierPaths 内部包含CGPath,所以区别不大。)

以上是关于如何在ios中创建三角形对象的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ios swift 中创建 json 对象

如何在 Flutter 中创建三角形 UI

iOS:如何保存在应用程序中创建的自定义对象

如何在OpenGL中创建一个带三角形的偶数球?

如何在代码中创建 SceneKit SCNSkinner 对象?

在 Swift 中创建自定义(八角形)UIButton 的最佳方法