首页 > 解决方案 > iOS导航栏自定义titleView子视图未正确显示

问题描述

当父 viewController 从另一个视图控制器推送时,iOS 导航栏自定义 titleView 子视图无法正确显示。

根视图中的自定义标题视图 在此处输入图像描述

从不同的视图控制器推送后视图控制器中的自定义标题视图

在此处输入图像描述

我为自定义 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

标签: iosswiftuinavigationbaruinavigationitem

解决方案


标签的总高度为 26,而您从图像视图的高度仅减少了 13,显示标签的一半。使标签的 y 值类似于 y:navView.frame.size.height - 30


推荐阅读