【发布时间】:2019-07-08 08:54:24
【问题描述】:
我正在尝试添加自定义视图(标签)作为导航项的标题视图。
但它没有出现在中心
func setupNavigationMultilineTitle(title:String) {
let autoscrollLabel = EFAutoScrollLabel()
autoscrollLabel.text = title
autoscrollLabel.textAlignment = .center
autoscrollLabel.backgroundColor = .red
autoscrollLabel.font = AppTheme.Fonts.font(type: .Medium, size: 15)
autoscrollLabel.textColor = AppTheme.Colors.ColorsOfApp.header_color.color
autoscrollLabel.frame = CGRect(x: 0, y: 0, width:((self.navigationController?.navigationBar.frame.size.width ?? 0) - (self.navigationItem.leftBarButtonItem?.customView?.frame.width ?? 0) * 2) , height: 40)
self.navigationItem.titleView = autoscrollLabel
}
我曾尝试使用自定义视图的扣除宽度将其显示在中心,但不幸的是它不起作用。
我也尝试获取self.navigationItem.leftBarButtonItem.width,但它返回0。我确认有po self.navigationItem.leftBarButtonItem 的leftBarbutton 项
编辑
这解决了问题
autoscrollLabel.frame = CGRect(x: self.view.center.x - 125, y: 0, width: 250 , height: 40)
但我需要动态解决方案
任何帮助将不胜感激
【问题讨论】:
-
你有 UILabel 的子类?
-
@ShahzaibQureshi 是的,它是第三方库。但它是 UILabel 的子类
-
默认标题视图在中心。
-
@dahiya_boy 我必须为标签设置框架。没有设置框架,我无法看到标签。
-
@PrashantTukadiya 检查我的答案。
标签: ios uinavigationcontroller uinavigationbar uinavigationitem