navigationItem.TitleView无法在iOS 10上运行

时间:2017-01-16 12:55:24

标签: ios objective-c xcode ios10 uinavigationitem

我在navigationBar中遇到了titleview的问题。问题是当我将视图分配到titleView时它不会显示。我试过使用navigationItem.title = @"eqweqweq";但没有任何反应。

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

iOS 10中是否有任何我无法使用titleView的错误?有时它有时不起作用。

我在谷歌搜索但没有帮助我。我希望有人可以帮助我T_T。

谢谢

5 个答案:

答案 0 :(得分:4)

一次只使用一个。

设置titleView的{​​{1}},如下所示:

navigationItem

直接设置UILabel *lblTitle = [[UILabel alloc] init]; lblTitle.text = @"eqweqweq"; lblTitle.backgroundColor = [UIColor clearColor]; [lblTitle sizeToFit]; self.navigationItem.titleView = lblTitle; 的{​​{1}},如下所示:

title

答案 1 :(得分:4)

确保您设置自定义titleView的大小。例如,在设置titleView之前,使用 titleLabel.sizeToFit()

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

答案 2 :(得分:0)

最后我解决了这个问题!

问题在于这个功能:

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)
    }
}

这个功能应用了白色视图,而且iOS 10有问题,所以我改为:

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

答案 3 :(得分:0)

尝试在viewWillApear函数中设置titleView。

答案 4 :(得分:-1)

请试试这个。它对我有用。

self.title = "eqweqweq"

希望它会对你有所帮助。谢谢