SwiftUI .toolbar ToolbarItem 自定义按钮设计

Posted

技术标签:

【中文标题】SwiftUI .toolbar ToolbarItem 自定义按钮设计【英文标题】:SwiftUI .toolbar ToolbarItem Custom Button Designs 【发布时间】:2021-05-15 04:58:38 【问题描述】:

是否可以在使用新的 .toolbar/ToolbarItem 代码时设置按钮样式?

这是一个添加红色背景的简单示例。什么都没有。

 ToolbarItem(placement: .navigationBarLeading) 
                        
      Button(action: ) 
          Image(systemName: "plus.circle")
          .background(.red)
       
                         
 

以前我只会添加它来添加背景、颜色、大小、阴影、圆圈等...

 .buttonStyle(NavButtonStyle())

我在浪费时间吗?我想要的最后一件事是丑陋的蓝色图像。我想自定义它们。

谢谢。

【问题讨论】:

ToolbarItem 已经是一个按钮,所以您不需要明确使用 Button。如果您想执行某些操作,请在没有按钮的情况下正常查看并添加手势。 样式怎么样?还是行动?我不明白这将如何工作?谢谢。 对于样式,我们可以创建一个普通视图,如正文视图,如果您想重定向其他屏幕,请使用导航链接,否则添加点击手势。 或者使用navigationBarItems(leading insted of ToolbarItem。 【参考方案1】:

我不知道为什么会这样 - 但确实如此。想知道是否有更好的方法?

我无法以任何方式格式化图像 - 直到我添加了 Text("")。

我添加了 HStack 只是为了整理。

如果你把 Text("") 放在前面,它会移动图像 - 所以最后会更好。

祝你好运。

.toolbar 
    
    ToolbarItem(placement: .navigationBarLeading) 
       
        Button(action:  presentationMode.wrappedValue.dismiss() ) 
             
            HStack 
            Image(systemName: "arrow.left")
                .frame(width: 24, height: 24) 
                .background(
                     Circle()
                        .fill(Color.red) 
                )
                .shadow(color: Color.black.opacity(0.3), radius: 3, x: 2, y: 2)
            
                Text("") // without this text the image formatting will not show
                 
            

        
       
    

【讨论】:

以上是关于SwiftUI .toolbar ToolbarItem 自定义按钮设计的主要内容,如果未能解决你的问题,请参考以下文章

SwipeActions 按钮和 ToolBar 按钮触发的多个工作表(项目:)在 SwiftUI 中首次获取 nil 对象

iOS 15.3.1中SwiftUI toolbar中按钮不响应点击动作等若干不兼容问题的解决

iOS 15.3.1中SwiftUI toolbar中按钮不响应点击动作等若干不兼容问题的解决

iOS 16 中 SwiftUI 4.0 Toolbar 自定义背景色以及 List 自动编辑操作的原生支持

iOS 16 中 SwiftUI 4.0 Toolbar 自定义背景色以及 List 自动编辑操作的原生支持

iOS 16 中 SwiftUI 4.0 Toolbar 自定义背景色以及 List 自动编辑操作的原生支持