代码之家  ›  专栏  ›  技术社区  ›  mightknow

如何自动大写一个uibutton的标签?

  •  1
  • mightknow  · 技术社区  · 8 年前

    我在和一个设计师一起工作,我们有几个不同的字体参与到这个项目中-有时做所有的大写字母,有时小写字母。这适用于我的标签和按钮。这些可能会改变,所以我试图做的是有自定义的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 回复  |  直到 8 年前
        1
  •  6
  •   Mayur Karmur    7 年前

    你需要设置 title 巴顿的,不是 titleLabel 的文本。更新代码如下:

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

    这段代码对我有用,希望对你有帮助。

        2
  •  0
  •   iOS Geek    8 年前

    不需要创建单独的类来使文本大写

    /// Set Button Title
    myButton.setTitle("myText".uppercased(), for: .normal)
    
    /// Set Label Text
    myLabel.text = "myText".uppercased()