UIButton作为UINavigationItem的titleView

3

我正在尝试将一个UIButton作为我的UINavigationItemtitleView。这是我的代码,但它不起作用。标题完全为空。

override func viewDidLoad() {
    super.viewDidLoad()

    let titleButton = UIButton()
    titleButton.titleLabel?.font = UIFont(name: "HelveticaNeue-Medium", size: 16)
    titleButton.titleLabel?.textAlignment = NSTextAlignment.Center;
    titleButton.titleLabel?.text = "My Custom Title"
    titleButton.titleLabel?.sizeToFit()

    self.navigationItem.titleView = titleButton
}

这是一个缺失标题的截图。 screenshot

调试并检查是否有实际框架。 - rcat24
2个回答

4

如果你正在使用Storyboards,你可以将UIButton拖到titleView中。如果Interface Builder不允许你这样做,那是因为你需要先将UINavigationItem拖到导航栏中,这样才能在里面拖放视图,例如你的UIButton


1
哦,糟糕!我不知道那是可能的。我会接受其他答案,因为它直接回答了问题中代码的错误。然而,我将选择这个方法,因为它更有意义。 - Fenda
我很高兴能帮助到你,@Fenda!Interface Builder 在悄无声息中变得越来越强大啦,时至今日。 - Gorka

3
使用func setTitle(_ title: String?, forState state: UIControlState)来设置特定状态的按钮标题,而不是直接设置标签的文本。通常情况下,您可以为.Normal设置标题,这样就会应用于所有状态(作为默认值)。

谢谢!真是个新手错误。 :) - Fenda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接