更改导航栏项目图像的大小和位置

问题描述

我正在创建一个导航栏左按钮。我想将我的公司徽标放在那里,但是当我使用故事板并禁用按钮时,它会创建带有色调的徽标。我找到了一个线程,可以让我创建按钮并为按钮分配我的徽标并根据用户的显示设置更改徽标的外观。它改变了标志的颜色并且完美地工作。我遇到的唯一问题是更改图像的大小和位置。该按钮占据了整个导航栏并且居中而不是向左。

这是我正在使用的按钮的自定义类:

import UIKit

class TintableBarButtonItem: UIBarButtonItem {

    private(set) var button: UIButton!

    override var tintColor: UIColor? {
        get { return button.tintColor }
        set { button.tintColor = newValue }
    }

    convenience init(button: UIButton) {
        self.init(customView: button)
        self.button = button
        button.imageView?.contentMode = .scaleAspectFit
        button.frame = CGRect(x: 0,y: 0,width: 34,height: 30)
    }

}

在我想要使用按钮的视图控制器中,我有以下代码:

override func viewDidLoad() {
    super.viewDidLoad()
    
    let button = UIButton()
    button.frame = CGRect(x: 0.0,y: 0.0,width: 20,height: 20)
    let image = #imageLiteral(resourceName: "My Company Logo").withRenderingMode(.automatic)
    button.setImage(image,for: .normal)
        let barButton = TintableBarButtonItem(button: button)
        navigationItem.leftBarButtonItem = barButton
    
}

我曾尝试仅在类中更改框架,仅在视图控制器中更改框架,并在两者中更改框架,但似乎无法移动按钮或更改大小。我真的可以使用一些帮助来解决这个问题。感谢大家对本网站的帮助。学习了很多。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...