ios - 在 iOS 中的按钮下添加虚线

标签 ios objective-c swift

我有按钮,我想在它下面添加虚线 - 所以它看起来像这样。 我知道如何使用属性字符串来做到这一点,但我认为我应该使用 subLayers,因为我将有更多的配置选项:例如文本和线条之间的距离。

enter image description here

最佳答案

这是如何实现的示例:

class CustomButton: UIButton {

    override func layoutSubviews() {
        super.layoutSubviews()

        layer.sublayers?.filter({ $0.name == "DashedTopLine" }).map({ $0.removeFromSuperlayer() })

        let shapeLayer = CAShapeLayer()
        shapeLayer.name = "DashedTopLine"
        shapeLayer.bounds = bounds
        shapeLayer.position = CGPoint(x: frame.width / 2, y: frame.height / 2)
        shapeLayer.fillColor = UIColor.clear.cgColor
        shapeLayer.strokeColor = UIColor.red.cgColor
        shapeLayer.lineWidth = 1
        shapeLayer.lineDashPattern = [2, 2]

        let path = CGMutablePath()
        path.move(to: CGPoint.zero)
        path.addLine(to: CGPoint(x: frame.width, y: 0))
        shapeLayer.path = path

        layer.addSublayer(shapeLayer)

    }
}

关于ios - 在 iOS 中的按钮下添加虚线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43318740/

相关文章:

ios - Objective-C:使用可变参数调用选择器

ios - 获取 UIWebview 的当前域

iphone - 将 UIPickerView 和 UIToolBar 添加到 UIActionSheet 的问题

iOS SDK : Corner Radius shows incorrectly

ios - UITabBarViewController 的自定义 TabBar 布局

ios - swift searchbar 和 tableview - fatal error : unexpectedly found nil while unwrapping an optional value

ios - iOS swift 中的 scrollViewDidEndDecelerating 问题?

objective-c - ObjC 书籍和官方文档中内存管理描述之间的冲突

objective-c - 如何将 C 数组传递给 Objective-C 函数?

ios - 在具有 Storyboard segue 的 collectionviewcell super View 上带有推送 Segue 的按钮会引发错误