我有一个自定义应用程序,其中包含一个自定义栏按钮项,对于Swift 3,它的大小是适当的,但是在更新为Swift 4后,它不再根据所提供的约束调整大小。这是我的代码:

let infoButton = UIButton.init(type: .custom)
infoButton.setImage(UIImage(named: "info button white.png"), for: UIControlState.normal)
infoButton.addTarget(self, action: #selector(StartViewController.infoButtonPressed), for: UIControlEvents.touchUpInside)
infoButton.frame = CGRect(x: 0, y: 0, width: 25, height: 25)

let barButton = UIBarButtonItem(customView: infoButton)
self.navigationItem.rightBarButtonItem = barButton

我尝试更改CGRect编号以查看是否有任何更改,并且没有更改,它的大小已调整到导航栏的极限,坦率地说,现在看起来很丑。

ios - 自定义栏按钮项的大小不正确-LMLPHP
关于Swift 4发生了什么变化的任何想法?我正在运行Xcode 9.0(9A235)

最佳答案

尝试像这样设置约束:

infoButton.widthAnchor.constraint(equalToConstant: 25).isActive = true
infoButton.heightAnchor.constraint(equalToConstant: 25).isActive = true

或使用正确尺寸的图像。

09-11 18:56