UIButton作为UINavigationBar中的标题视图奇怪的弹力bug?

时间:2017-06-25 13:56:59

标签: ios uinavigationcontroller uibutton uinavigationbar

我正在尝试将UIButton作为UINavigationBar的标题视图(在UINavigationController中),但在向按钮添加图片时,它似乎会拉伸整个标题视图:

enter image description here

我在这里做错了还是这个错误?这有解决方法吗?我正在运行iOS 11 beta 2,所以它可能只是一个测试版错误,但无法在iOS10上测试..任何帮助将不胜感激! :)

代码:

let titleButton = UIButton(type: .system)
titleButton.sizeToFit()
titleButton.tintColor = UFOGREENTHEMECOLOR
titleButton.setTitleColor(BLACKTEXTCOLOR, for: .normal)
titleButton.setTitle("John Doe", for: .normal)
titleButton.titleLabel?.font = UIFont(name: "Avenir-Book", size: 20)

titleButton.setImage(UIImage(named: "Default Avatar.png"), for: .normal)
self.navigationItem.titleView = titleButton

编辑:在IOS10上试过这个,行为相同。添加titleButton.imageView?.contentMode = .scaleAspectFit 正如CoderAzreal所建议的那样似乎可以解决图像被拉伸的问题,但标题仍然偏向右侧。

2 个答案:

答案 0 :(得分:2)

尝试titleButton.imageView?.contentMode = .scaleAspectFit

答案 1 :(得分:0)

您可以为UIButton添加宽度约束

    [self.search_button addConstraint:[NSLayoutConstraint constraintWithItem:self.search_button
                                                             attribute:NSLayoutAttributeWidth
                                                             relatedBy:NSLayoutRelationEqual
                                                                toItem:nil
                                                             attribute:NSLayoutAttributeNotAnAttribute
                                                            multiplier:1.0
                                                              constant:32]];