navigationItem.TitleView 未在 iOS 10 上工作

navigationItem.TitleView not working on iOS 10

我对导航栏中的标题视图有疑问。问题是当我将视图分配给 titleView 时它不会显示。我尝试使用 navigationItem.title = @"eqweqweq"; 但没有任何反应。

这个视图是由代码创建的,我不知道这是否是问题所在,因为我使用的其他 ViewControllers 工作得很好。

在 iOS10 中是否存在我无法使用 titleView 的错误?有时有效有时无效。

我在 google 上搜索过,但没有任何帮助。我希望有人能帮助我 T_T。

谢谢

一次只用一个。

设置 titleViewnavigationItem,如下所示:

UILabel *lblTitle = [[UILabel alloc] init];
lblTitle.text = @"eqweqweq";
lblTitle.backgroundColor = [UIColor clearColor];

[lblTitle sizeToFit];

self.navigationItem.titleView = lblTitle;

直接设置 navigationItemtitle 如下:

navigationItem.title=@"eqweqweq"

请试试这个。对我有用。

self.title = "eqweqweq"

希望对您有所帮助you.Thanks

终于解决了问题!

问题出在这个函数上:

extension UINavigationController{
func applyWhiteEffect(){
        var bounds = self.navigationBar.bounds
        let whiteView = UIView()
        bounds.origin.y = -20
        bounds.size.height = bounds.size.height + 20
        whiteView.frame = bounds
        whiteView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
        whiteView.userInteractionEnabled = false
        whiteView.backgroundColor = UIColor.whiteColor()
        whiteView.tag = 1000
        self.navigationBar.addSubview(whiteView)
        self.navigationBar.backgroundColor = UIColor.clearColor()
        self.navigationBar.sendSubviewToBack(whiteView)
    }
}

这个函数应用了一个白色视图,但那个和 iOS10 有问题,所以我改成这样:

func applyWhiteEffect(){
        var bounds = self.navigationBar.bounds
        let whiteView = UIView()
        bounds.origin.y = -20
        bounds.size.height = 20
        whiteView.frame = bounds
        whiteView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
        whiteView.userInteractionEnabled = false
        whiteView.backgroundColor = UIColor.whiteColor()
        whiteView.tag = 1000
        self.navigationBar.addSubview(whiteView)
        self.navigationBar.backgroundColor = UIColor.whiteColor()
        self.navigationBar.sendSubviewToBack(whiteView)
    }

将视图更改为仅覆盖状态栏和 self.navigationBar.backgroundColor = UIColor.whiteColor()

谢谢大家帮助我 :D

确保设置自定义 titleView 的大小。例如,在设置 titleView.

之前使用 titleLabel.sizeToFit()
let titleLabel = UILabel()
titleLabel.attributedText = NSAttributedString(string: title, attributes: attributes)
titleLabel.sizeToFit()  // Important part
navigationItem.titleView = titleLabel

尝试在 viewWillApear 函数中设置 titleView。