标题未显示自定义UIButton类

时间:2016-07-18 11:47:01

标签: ios swift uibutton

我创建了一个自定义UIButton类,它具有圆形框架。问题是虽然我设置了他们没有显示的故事板中每个按钮的title属性。我最终得到了圆形按钮,里面没有标题。我正在尝试使用默认iOS密码屏幕中的键盘。我的主视图背景颜色不是白色,我没有使用任何背景图像的按钮。这是我自定义UIButton类的代码。

import Foundation
import UIKit

class MyOwnButton: UIButton {

    override init(frame: CGRect){
        super.init(frame: frame)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func layoutSubviews() {
        self.clipsToBounds = true
        self.titleLabel?.font = UIFont.systemFontOfSize(33.0)
        self.titleLabel?.textColor = UIColor.whiteColor()
        self.layer.cornerRadius = self.frame.size.width / 2.0
        self.layer.borderColor = UIColor.whiteColor().CGColor
        self.layer.borderWidth = 2.0
    }
}

4 个答案:

答案 0 :(得分:3)

有同样的问题,这个答案对我有用:Custom UIButton subclass not displaying title

覆盖函数后添加super.layoutSubviews()

答案 1 :(得分:0)

您是否已将UIButton的类设置为故事板中的自定义类?

答案 2 :(得分:0)

尝试将所有内容放入init方法并检查。

import Foundation
import UIKit

class MyOwnButton: UIButton {

    override init(frame: CGRect){
        super.init(frame: frame)
        self.clipsToBounds = true
        self.titleLabel?.font = UIFont.systemFontOfSize(33.0)
        self.titleLabel?.textColor = UIColor.whiteColor()
        self.layer.cornerRadius = self.frame.size.width / 2.0
        self.layer.borderColor = UIColor.whiteColor().CGColor
        self.layer.borderWidth = 2.0
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }


}

答案 3 :(得分:0)

以下是 Swift 4

的工作代码
import UIKit

class MyOwnButton: UIButton {
    override init(frame: CGRect){
       super.init(frame: frame)

        commonSetup()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        commonSetup()
    }

    private func commonSetup() {
        self.clipsToBounds = true
        self.titleLabel?.font = UIFont.systemFont(ofSize: 33.0)
        self.titleLabel?.textColor = UIColor.white
        self.layer.cornerRadius = self.frame.size.width / 2.0
        self.layer.borderColor = UIColor.white.cgColor
        self.layer.borderWidth = 2.0
    }
}