【发布时间】:2017-10-01 09:39:27
【问题描述】:
我已将我的应用程序从 Swift 3.1 迁移到 Swift 4.0(Xcode 8.3.3 到 Xcode 9.0),现在我的界面的某些部分已损坏。导航控制器的导航栏完全一团糟。请看截图:
有3个元素:
左 Netfnet 徽标(图片)
右信号强度(图像)
右二维码按钮
如您所见,两张图片太大且不在中心,按钮变形(应该是完美的正方形,所有图片也是)。 有生成导航控制器的代码:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
settings()
}
func settings() {
let color = UIColor(red: 81 / 255, green: 155 / 255, blue: 22 / 255, alpha: 1.0)
self.navigationController?.navigationBar.barTintColor = color
let logoImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
logoImageView.contentMode = .scaleAspectFit
let logo = UIImage(named: "littleLogoImage")
logoImageView.image = logo
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: logoImageView)
let signalStengthImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
signalStengthImageView.contentMode = .scaleAspectFit
signalStengthImageView.image = UIImage(named: "signalStrength4")
let signalStengthImageItem = UIBarButtonItem(customView: signalStengthImageView)
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "qrCodeButton"), for: .normal)
button.frame = CGRect(x: 0, y: 0, width: 35, height: 35)
let qrCodeButtonItem = UIBarButtonItem(customView: button)
navigationItem.rightBarButtonItems = [qrCodeButtonItem, signalStengthImageItem] //
}
}
我可以自己直接降低图像的分辨率,但我只是不明白为什么在 Swift 3.1 中翻转很好,而在 Swift 4.0 中却被破坏了。
我会感谢任何帮助或建议。
【问题讨论】:
标签: user-interface swift3 uinavigationcontroller uinavigationbar swift4