ios - 调整导航 Controller 中自定义 UIBarButtonItem 的大小

标签 ios swift uibutton uibarbuttonitem

我正在尝试在我的应用程序的导航中添加自定义 UIBarButtonItem。 通过以下代码,我成功添加了一个

let rightButton = UIButton(type: .custom)
    rightButton.frame = CGRect(x: 0, y: 0, width: 10, height: 10)
    rightButton.setImage(UIImage(named: "hamburgerMenuIcon"), for: .normal)
    navigationItem.rightBarButtonItem = UIBarButtonItem(customView: rightButton)                  target: nil, action: nil)

但看起来 rightButton.frame 不起作用,因为它根本没有改变按钮的尺寸。

最佳答案

从 iOS 11 开始,导航栏带有自动布局,因此框架设置可能不起作用。使用以下代码

let rightButton = UIButton(type: .custom)
rightButton.frame = CGRect(x: 0.0, y: 0.0, width: 10, height: 10)
rightButton.setImage(UIImage(named:"hamburgerMenuIcon"), for: .normal)

let menuBarItem = UIBarButtonItem(customView: rightButton)
let currWidth = menuBarItem.customView?.widthAnchor.constraint(equalToConstant: 10)
currWidth?.isActive = true
let currHeight = menuBarItem.customView?.heightAnchor.constraint(equalToConstant: 10)
currHeight?.isActive = true
navigationItem.rightBarButtonItem = menuBarItem

关于ios - 调整导航 Controller 中自定义 UIBarButtonItem 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54267504/

相关文章:

ios - 如何将字符串 "$double_number"转换为 double

swift - 在 Swift 中设置两周时间表

ios - 具有透明背景图像的 UIButton 无法正常工作

ios - 从 UIButton 获取位置中心

python - 属性错误: object has no attribute 'json_args'

ios - 提请注意并促进可操作控制的发现

Xcode 6.3&Swift 错误 :Objective-C method 'init' defined by implicit initializer 'init()' here

iOS:UIButton 没有增加高度以适应标题标签(没有子类化 UIButton)

ios - 当应用程序进入后台时保留音频并删除 AVPlayer 的视频流

swift - 如何向 UIView 实例的 subview 添加约束而不导致应用程序崩溃?