ios - 在导航控制器中调整自定义 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
推荐阅读
- javascript - 如何使用 sinon 存根 aws s3 上传
- sql - 如何在 sql 中获取过去 1 小时的结果
- javascript - 我正在尝试向 Vue.js 添加效果,但没有发生任何事情
- yaml - 在 YAML 多行字符串的第一行保留前导空格
- sql - 在 Order by | 中使用 Case 表达式时的不同之处 SQL
- android - 从日期和时间 Android 获取时间戳
- html - 为什么图片加载不出来?
- localization - 如何使用反应路由器和 i18 直接从 url 配置本地化作为语言参数?
- html - 页面右侧的空间
- python - 为什么 pop 方法不打破这个例子中的 while 循环?