ios - 如何在 iOS 的导航中制作带有 Logo 和文本的自定义导航栏?

标签 ios swift iphone xcode uinavigationcontroller

由于我来自混合应用程序背景,我想在 iOS 中实现一个包含 Logo 和文本的 UI。下面是一个蓝色条,其中包含“返回”和“注册”作为标题。单击返回时,它将转到上一个 Controller 。我怎样才能实现这个用户界面?我尝试使用下面的给定代码:但我不确定如何进一步进行。

func addNavBarImage() {
        let navController = navigationController!
        let image = UIImage(named: "logo-signIn6.png") //Your logo url here
        let imageView = UIImageView(image: image)
        let bannerWidth = navController.navigationBar.frame.size.width
        let bannerHeight = navController.navigationBar.frame.size.height
        let bannerX = bannerWidth / 2 - (image?.size.width)! / 2
        let bannerY = bannerHeight / 2 - (image?.size.height)! / 2
        imageView.frame = CGRect(x: bannerX, y: bannerY, width: bannerWidth, height: bannerHeight)
        imageView.contentMode = .scaleAspectFit
        navigationItem.titleView = imageView
    }

下面是我想要实现的UI图像。 enter image description here

最佳答案

您可以将自定义 View 分配给navigationItem.titleView。这是一个非常简单的代码,用于将图像和文本分配给 titleView。我鼓励您创建一个单独的 View 类,在其中定义自定义 View ,然后将其分配给 titleView

override func viewDidLoad() {
    super.viewDidLoad()

    let imageView = UIImageView()
    imageView.heightAnchor.constraint(equalToConstant: 30).isActive = true
    imageView.widthAnchor.constraint(equalToConstant: 30).isActive = true

    let titleLabel = UILabel()
    titleLabel.text = "Your title"

    let stackView = UIStackView(arrangedSubviews: [imageView, titleLabel])
    stackView.spacing = 5
    stackView.alignment = .center

    // This will assing your custom view to navigation title. 
    navigationItem.titleView = stackView
}

关于ios - 如何在 iOS 的导航中制作带有 Logo 和文本的自定义导航栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65827628/

相关文章:

iphone - 如何防止同时出现 UIGestureRecognizers

iphone - 嵌入式Segue在iOS 5.1上不可用

ios - 有没有办法根据计算以编程方式更改 UIStepper 的值?

ios - UIBarButtonItem 样式被忽略?

ios - 无法从 Parse 对象检索 updatedAt 或 createdAt 值

ios - 不支持将协议(protocol)用作符合 'AnyObject' 的具体类型

ios - 如何在 SwiftUI 预览中打印?

swift - 使用 Swift 从 Parse 中检索图像

swift - 在 MacOS 上使用 VLCKit 本地录制流 - 寻找示例

iphone - 为什么自定义 MKMapView 注释图像在触摸时消失?