gpt4 book ai didi

ios - 如何使用使用 Swift 3.0 开发的 Swift 4.0 更改 iOS 应用程序中按钮的高度和宽度

转载 作者:可可西里 更新时间:2023-11-01 04:10:32 25 4
gpt4 key购买 nike

我是 iOS 开发的新手,我应该修复使用 Swift 3.0 和 Xcode 8 制作的 iOS 应用程序中的一些错误,它几乎可以正常工作。但是当我用 Xcode 9 和 Swift 4.0 打开它时,它显示的一些按钮与以前有很大不同。

这是其中一个按钮的源代码。

let button: UIButton = UIButton.init(type: UIButtonType.custom)
//set image for button
button.setImage(UIImage(named: "menu.png"), for: UIControlState())
button.frame = CGRect(x: 0, y: 0, width: 30, height: 23)
let barButton = UIBarButtonItem(customView: button)
button.addTarget(self, action: #selector(ViewController.shareButtonPressed), for: UIControlEvents.touchUpInside)

self.navigationItem.leftBarButtonItem = barButton

这段代码在 ViewDidLoad 方法中。我的问题是当我删除时,

button.setImage(UIImage(named: "menu.png"), for: UIControlState())

按钮消失了,但是当我改变高度和宽度时,

button.frame = CGRect(x: 0, y: 0, width: 30, height: 23)

它没有任何改变。我的问题是如何修复此错误。非常感谢任何建议,答案,如果给定的详细信息不够,请提及。谢谢!

最佳答案

从 iOS 11 开始,使用 UIBarButtonItem(customView:) 添加到工具栏的 View 现在使用自动布局进行布局。您应该在 button 上添加大小限制。例如:

button.widthAnchor.constraintEqualToConstant(30.0).isActive = true
button.heightAnchor.constraintEqualToConstant(23.0).isActive = true

否则,自动布局将使用标题 View 的固有内容大小,这可能不是您所期望的。

有关更多信息,请参阅 WWDC 2017 session Updating your app for iOS 11 .

关于ios - 如何使用使用 Swift 3.0 开发的 Swift 4.0 更改 iOS 应用程序中按钮的高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46822361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com