我正在尝试在我的应用程序中显示多行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)
}
该标签显示在父视图之外。
我应该只使用UILabel而不是将其放入UIView吗?
答案 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