UINavigationItem TitleView使用UIView时中断

时间:2019-01-03 15:52:08

标签: ios

我正在尝试在我的应用程序中显示多行titleView。这是我设置titleView的代码。

self.titleView = TitleView(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: self.tableView.frame.width, height: 80)), title: "NEWS", subtitle: Date.dateAsStringForNavBarSubTitle())
        self.titleView.backgroundColor = UIColor.red

        self.navigationItem.titleView = self.titleView

TitleView的实现部分如下所示:

 private func setupUI() {

        let label = UILabel(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: self.frame.width, height: self.frame.height)))
        label.numberOfLines = 2
        label.text = "\(self.title)\n\(self.subtitle)"
        self.addSubview(label)
    }

该标签显示在父视图之外。

enter image description here

我应该只使用UILabel而不是将其放入UIView吗?

1 个答案:

答案 0 :(得分:2)

我可以看到您正在将标签子视图添加到标题视图中。相反,您可以在viewcontroller的viewDidLoad()方法中尝试此操作。

对于Swift 4

let label = UILabel(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.width, height: 44.0))
label.backgroundColor = .red
label.numberOfLines = 2
label.textAlignment = .left
label.text = "\(self.title)\n\(self.subtitle)"
self.navigationItem.titleView = label 

有关更多信息,请参考此链接UINavigationBar multi-line title