iOS导航栏自定义titleView子视图在父viewController从另一个视图控制器推送时未正确显示。
从其他视图控制器中推送后,视图控制器中的自定义标题视图
我为自定义TitleView尝试的代码
let height = CGFloat(500)
self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 50, width: view.frame.width, height: height)
self.navigationController?.navigationBar.backgroundColor = .blue
let navView = UIImageView()
navView.frame = CGRect(x: 0, y: 0, width: view.frame.width-100, height: height)
navView.backgroundColor = .red
navigationItem.titleView = navView
综述
let oneLabel = UILabel()
oneLabel.frame = CGRect(x: 50, y: navView.frame.size.height-13, width: 26, height: 26)
oneLabel.text = "1"
oneLabel.textColor = .white
oneLabel.backgroundColor = UIColor(hexString: Constants.greenColor)
oneLabel.textAlignment = .center
navView.addSubview(oneLabel)
oneLabel.clipsToBounds = true
oneLabel.layer.cornerRadius = 13
标签的总高度为26,而您从图像视图的高度(仅显示标签的一半)仅减少了13。使标签的y值类似于y:navView.frame.size.height-30