如何更改导航项的titleView的大小? (迅速)

时间:2018-07-06 15:26:39

标签: swift uinavigationcontroller navigationbar uinavigationitem titleview

在我的应用中,我想将导航控制器的titleView更改为自定义ImageView,但是我遇到了一个非常奇怪的问题。我基本上不能设置ImageView的框架。

这是我的代码:

func NavBarEinrichten(){

    let logo = UIImage(named: "Notennamen für Griffe 1")!
    let imageView = UIImageView(image:logo)
    imageView.contentMode = .scaleAspectFit

    //To show the problem better
    imageView.backgroundColor = UIColor.red


    let navController = navigationController!

    let bannerWidth:CGFloat = 20
    let bannerHeight:CGFloat = navController.navigationBar.frame.size.height

    let bannerX = bannerWidth / 2 - logo.size.width / 2
    let bannerY = bannerHeight / 2 - logo.size.height / 2

    imageView.frame = CGRect(x: bannerX, y: bannerY, width: bannerWidth, height: bannerHeight)
    self.navigationItem.titleView?.frame = CGRect(x: bannerX, y: bannerY, width: bannerWidth, height: bannerHeight)

    navigationItem.titleView = imageView

    print(imageView.frame, "imageView frame")

}

打印语句打印:

(0.0, 0.0, 357.0, 142.0) imageView frame

这是正确的,因为当我运行它时它看起来像这样,但不应该如此。因为我希望宽度为20。

在模拟器中,它看起来像这样:

Actual appearance

我尝试在viewDidLoad()viewWillAppear()viewDidLayoutSubviews()中调用此方法 每次都有完全相同的结果...

你能帮我吗?

0 个答案:

没有答案