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

Posted

技术标签:

【中文标题】在 Swift 中创建自定义(八角形)UIButton 的最佳方法【英文标题】:Best way to create Custom (Octagonal) UIButton in Swift 【发布时间】:2021-12-30 19:26:57 【问题描述】:

我即将自定义我所有的UIButtons,方法是将它们子类化为一个特殊的UIButton 类,我希望拥有像下面的八角形或一些六角形按钮的“外观”。创建这种形状 UI 按钮的最佳方法是什么?到目前为止,我只知道如何创建矩形、圆形和圆边按钮,我找不到以下“外观”的答案或 cocoapods。

    是否可以通过编程方式创建此类UIButton 的自定义类?

    或者我需要将图像导入到按钮上以实现下面的“外观”吗?

    另外,有没有可能是 App Store 不允许这种自定义形状的按钮?

【问题讨论】:

【参考方案1】:
    是的,您可以使用 UIBezierPath 为包括 UIButton 在内的各种 UIKit 组件创建任意形状。见教程here 我认为只需将上面的 #1 与 myButton.layer.borderColor/.borderWidth 结合使用即可实现上述目标 我不确定。我的猜测是否定的,但我认为这取决于Apple Human Interface guidelines,这在某些情况下似乎是任意的。值得一提的是,我发布的应用程序具有非常相似的按钮,但它们是椭圆形,而不是像您那样的多边形,但看起来仍然非常相似。

更新:忘记了一个很好的例子。这是我使用带有 UIBezier 路径的 UIButton 创建的“书签选项卡”效果的示例。这已经运送多年了,没有任何问题:

【讨论】:

感谢您的精彩回答 :) 我正在阅读教程。

以上是关于在 Swift 中创建自定义(八角形)UIButton 的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift Combine 中创建自定义链?

在 Swift 中创建自定义 UIView 并显示为弹出窗口

如何在 Swift Xcode 中创建自定义导航栏?

如何在Xcode + Swift 4中创建自定义UIBarButtonItem类?

iOS - 如何在没有第三方框架的情况下在 Swift 中创建自定义动画横幅

如何在 laravel 中创建自定义关系?