gpt4 book ai didi

ios - 如何设置大小 leftBarButtonItem?

转载 作者:可可西里 更新时间:2023-11-01 06:23:57 33 4
gpt4 key购买 nike

我正在尝试以编程方式设置左按钮栏项目的大小,但我做不到。

这是我的代码:

        let backButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
backButton.setBackgroundImage(UIImage(named: "hipster_pelo2.png"), for: .normal)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: backButton)

但这是使用 Xcode 9 和 swift 3 的 iphone X 中的结果。在图像中,您可以看到标题应用将其向右移动,因为按钮大小:

enter image description here

有人知道问题出在图像尺寸上吗??

最佳答案

您可以使用

限制 barButton 项目的大小
let barButton = UIBarButtonItem(customView: backButton)  
NSLayoutConstraint.activate([(barButton.customView!.widthAnchor.constraint(equalToConstant: 30)),(barButton.customView!.heightAnchor.constraint(equalToConstant: 30))])
self.navigationItem.leftBarButtonItem = barButton

引用:https://skyebook.net/blog/2017/09/uibarbuttonitem-sizing-in-ios-11/

按钮的巨大框架是因为您为按钮背景设置的巨大图像。尽管您设置为按钮的框架应该覆盖按钮的隐式大小,但由于某些奇怪的原因,当作为自定义 View 传递给条形按钮时,隐式大小将接管。因此,有必要应用宽度和高度约束来限制自定义 View 的大小。

编辑:

由于 OP 在从 url 加载图像并将其设置为按钮图像时遇到问题,我正在更新我的答案以证明相同的情况,

    do {
try button.setImage(UIImage(data: Data(contentsOf: your_url)), for: .normal)
}
catch {
print(error)
}

OP 代码的问题是试图设置按钮图像,甚至在图像下载之前。所以这应该可以帮助您解决问题:)

编辑 2:

OP 在制作条形按钮的自定义 View 圆形时遇到麻烦,所以这里是应该使 BarButton 项目的自定义 View 圆形的代码:)

    barButton.customView?.layer.cornerRadius = 15
barButton.customView?.layer.masksToBounds = true

希望对你有帮助

关于ios - 如何设置大小 leftBarButtonItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48048852/

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