图像未定位在导航栏中的左侧

问题描述 投票:0回答:1

我在 Swift 的导航栏中添加了一个徽标,但它没有向左对齐。相反,它正在向中心移动。

private func configureNavbar() {
    var image = UIImage(named: "netflixLogo")
    image = image?.withRenderingMode(.alwaysOriginal)
    navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: .done, target: self, action: nil)
    
    navigationItem.rightBarButtonItems = [
        UIBarButtonItem(image: UIImage(systemName: "person"), style: .done, target: self, action: nil),
        UIBarButtonItem(image: UIImage(systemName: "play.rectangle"), style: .done, target: self, action: nil)
    ]
    navigationController?.navigationBar.tintColor = .white
}

enter image description here`

ios swift uinavigationbar
1个回答
0
投票

要将徽标图像放置在导航栏中的左侧,您可以使用自定义视图而不是

leftBarButtonItem
。您可以通过以下方式修改代码来实现此目的:

private func configureNavbar() {
    let logoImageView = UIImageView(image: UIImage(named: "netflixLogo"))
    logoImageView.contentMode = .scaleAspectFit
    logoImageView.frame = CGRect(x: 0, y: 0, width: 100, height: 40) // Adjust the frame size as needed
    
    let logoItem = UIBarButtonItem(customView: logoImageView)
    navigationItem.leftBarButtonItem = logoItem
    
    navigationItem.rightBarButtonItems = [
        UIBarButtonItem(image: UIImage(systemName: "person"), style: .done, target: self, action: nil),
        UIBarButtonItem(image: UIImage(systemName: "play.rectangle"), style: .done, target: self, action: nil)
    ]
    
    navigationController?.navigationBar.tintColor = .white
}

在此代码中,我们创建一个带有徽标图像的

UIImageView
并将其内容模式设置为
.scaleAspectFit
以保持宽高比。我们还为图像视图设置了特定的框架来控制其大小。根据需要调整框架值以适合您的徽标。

然后,我们创建一个以自定义视图作为徽标图像视图的

UIBarButtonItem
,并将其分配给
leftBarButtonItem
。这会将徽标图像放置在导航栏中的左侧。

确保将框架值和图像名称替换为您的实际徽标图像详细信息。

通过使用自定义视图,您可以更好地控制导航栏中徽标图像的位置和外观。

© www.soinside.com 2019 - 2024. All rights reserved.