Swift在Storyboard中设置UIButton setBorderColor

时间:2017-02-04 15:00:13

标签: swift xcode storyboard

我正在尝试在Storyboard上设置UIButton边框颜色:

Set button color

但按钮仍然是黑色。当我尝试使用layer.borderColor时,它根本不显示边框。

如何选择颜色?

谢谢

//更新

我已经将基于@dfd设置的方式改为:

import Foundation
import UIKit

@IBDesignable

public class OnboardingButton: UIButton {
    @IBInspectable public var borderColor:UIColor? {
        didSet {
            layer.borderColor = borderColor?.cgColor
        }
   }
   @IBInspectable public var borderWidth:CGFloat = 0 {
        didSet {
            layer.borderWidth = borderWidth
        }
   }
   @IBInspectable public var cornerRadius:CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
            layer.masksToBounds = newValue > 0
        }
   }
}

在Storyboard自定义类中设置为 * OnboardingButton 应用程序开始构建但Faield。日志中没有错误。我在哪里可以找到错误以及如何修复它?

2 个答案:

答案 0 :(得分:3)

这是我的UIButton子类:

@IBDesignable
public class Button: UIButton {
    @IBInspectable public var borderColor:UIColor? {
        didSet {
            layer.borderColor = borderColor?.cgColor
        }
    }
    @IBInspectable public var borderWidth:CGFloat = 0 {
        didSet {
        layer.borderWidth = borderWidth
        }
    }
    @IBInspectable public var cornerRadius:CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
            layer.masksToBounds = newValue > 0
        }
    }
}

编辑:

我创建了一个简单的项目并添加了上面的IBDesignable子类。以下是结果的三个屏幕截图。请注意,在Identity检查器中,我将Class设置为Button,而不是UIButton,并且它报告Designables是“最新的”。请注意,在“属性”检查器中,这些属性显示为最顶层的属性。

Identity inspector Attributes inspector Storyboard snapshot

答案 1 :(得分:0)

您可以更改UIButton表单界面构建器的某些属性,但不能更改边框颜色。另一种方法是将其子类化,如dfd建议的答案。