【问题标题】:Too much space left between items when using ToolbarItemGroup使用 ToolbarItemGroup 时项目之间的空间太大
【发布时间】:2021-04-02 08:32:54
【问题描述】:

当我在 SwiftUI 中使用工具栏组时,元素之间的空间太大。我在 iOS 13 中把它和HStack 放在一起,没关系。但是当我在 iOS 14 中将它与工具栏一起放置时,出现了问题。我该如何解决这个问题?

var muteUser: some View {
        NavigationLink(destination: Text("dddd").environmentObject(CurrentUser)) {
            Image(systemName: "speaker.slash")
                .frame(width: 22, height: 22)
        }
}
var friendSetting: some View {
        NavigationLink(destination: FriendSettings().environmentObject(CurrentUser)) {
            Image(systemName: "gear")
                .frame(width: 22, height: 22)
        }
}

var body: some View {
    GeometryReader { geometry in
        if #available(iOS 14.0, *) {
            chatView
                .toolbar {
                    ToolbarItem(placement: .principal) {
                        centerNavBar()
                            .frame(maxWidth: geometry.size.width*0.75)
                    }
                    ToolbarItemGroup(placement: .navigationBarTrailing) {
                        muteUser
                        friendSetting
                    }
                }
            
        } else {
            chatView
                .navigationBarItems(trailing:
                                        HStack(){
                                            centerNavBar()
                                            Spacer()
                                            rightNavBar
                                        }
                                        .frame(width: geometry.size.width*0.75)
                                    
                )
        }
    }
}

【问题讨论】:

    标签: swiftui swiftui-navigationview


    【解决方案1】:

    看起来这是ToolbarItemGroup中两个按钮的标准外观。

    您可以改用HStack

    .toolbar {
        ToolbarItem(placement: .principal) {
            Image(systemName: "star.fill")
        }
        ToolbarItem(placement: .navigationBarTrailing) {
            HStack {
                NavigationLink(destination: Text("dddd").environmentObject(CurrentUser)) {
                    Image(systemName: "speaker.slash")
                        .imageScale(.large)
                }
                NavigationLink(destination: FriendSettings().environmentObject(CurrentUser)) {
                    Image(systemName: "gear")
                        .imageScale(.large)
                }
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      尝试省略工具栏项目图像上的.frame(width: 22, height: 22)。我认为这导致 iOS 14 工具栏创建带有嵌入视图而不是简单图像的 UIToolbarItems。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多