10

AppStore 应用在 NabBar 的右侧有一个带有大标题的图像的图标: 如果有人知道如何实现它或如何实现它的想法,我将不胜感激。

4

2 回答 2

-1

这主要是你所追求的。displayMode: .automatic在声明时使用意味着navigationBarTitle它将显示为 largeTitle 直到滚动到导航栏转到displayMode: .inline. 例如,我只是使用SF Symbols图像,但您可以以相同的方式交换 Cap 的盾牌。如果您想要交互,请将其包装在一个按钮中。

struct ContentView: View {
    var body: some View {
        NavigationView {
            List(0...1000, id: \.self) { _ in
                Text("Sample")
            }
            .navigationBarTitle("Large Title", displayMode: .automatic)
            .navigationBarItems(trailing: Image(systemName: "shield"))
        }
    }
}
于 2020-08-07T22:04:46.207 回答
-4

这是在 UIKIT 中完成的。

这是代码的样子

let viewA = UIView()
let viewB = UIView()

private func setupNavigationBarAppearance() {

        viewA.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(didViewA)))
        viewB.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(didViewB)))
        
        let leftBarButtonItem = UIBarButtonItem(customView: viewA)
        let rightBarButtonItem = UIBarButtonItem(customView: viewB)
        
        navigationItem.leftBarButtonItem = leftBarButtonItem
        navigationItem.rightBarButtonItem = rightBarButtonItem
        navigationItem.title = "Hello World"
        
    }

@objc private func didViewA() {
        print("Hello")
    }
    
    @objc private func didViewB() {
        print("World")
    }

我在这里使用了 UIView,因为 ImageView 是 UIView 的子类,所以你可以将它与你的 ImageView 关联起来。如果不需要,您也可以删除左或右 barButtonItem。

于 2020-07-06T12:59:35.143 回答