Swift - 如何自动大写UIButton的标签?

时间:2018-06-15 04:27:20

标签: ios swift uibutton uilabel uppercase

我和设计师一起工作,我们在项目中涉及一些不同的字体 - 有时候全部大写,有时候都是小写的。这适用于我的标签和按钮。这些可能会改变,所以我试图做的是自定义UILabel和UIButton类,其中按钮标题将自动调整到我想要的情况,而不考虑在界面构建器中输入的大小写或来自代码的文本。我已使用以下代码使用自定义标签成功管理了此内容:

class MyHeadlineLabel : UILabel {

override func didMoveToWindow() {
    self.text = self.text?.lowercased()
    self.font = MyFonts.headlineFont
}
}

但是,在UIButton的didMoveToWindow()函数中添加类似的代码不起作用:

class MyDarkTextButton: UIButton {

override func didMoveToWindow() {
    self.titleLabel?.text = self.titleLabel?.text?.uppercased()
    self.font = MyFonts.subHeadFont            
}
}

我该怎么做呢?或者,更好的是,有没有办法使用我的自定义标签作为按钮标签?

2 个答案:

答案 0 :(得分:6)

您需要直接设置按钮的标题,而不是titleLabel的文本。更新了您的代码,如下所示:

override func didMoveToWindow() {
    self.setTitle(self.titleLabel?.text?.uppercased(), for: UIControlState.normal)
}

此代码对我有用,希望这对您有帮助。

答案 1 :(得分:0)

不需要创建单独的Class只是为了使文本大写

/// Set Button Title
myButton.setTitle("myText".uppercased(), for: .normal)

/// Set Label Text
myLabel.text = "myText".uppercased()