Swiftui 如何从导航栏(尾部)中删除默认填充
我在SwiftUI中向导航栏添加了一些按钮,因为我需要为它们添加一些填充,所以它们显示得比我预期的更偏左(如下所示) 如果我从每个按钮上移除单独的填充,我可以修复这个问题,但是在这种情况下,点击区域非常有限,从用户体验的角度来看,这是不寻常的 有没有办法删除默认的额外填充Swiftui 如何从导航栏(尾部)中删除默认填充,swiftui,Swiftui,我在SwiftUI中向导航栏添加了一些按钮,因为我需要为它们添加一些填充,所以它们显示得比我预期的更偏左(如下所示) 如果我从每个按钮上移除单独的填充,我可以修复这个问题,但是在这种情况下,点击区域非常有限,从用户体验的角度来看,这是不寻常的 有没有办法删除默认的额外填充 .navigationBarItems( trailing: HStack(alignment: .center, spacing: 0) { Butt
.navigationBarItems(
trailing:
HStack(alignment: .center, spacing: 0) {
Button(action: {
}) {
Image(systemName: "trash")
.imageScale(.large)
.accessibility(label: Text("Delete"))
.padding()
}
Button(action: {
}) {
Image(systemName: "square.and.arrow.up")
.imageScale(.large)
.accessibility(label: Text("Share"))
.padding()
}
CustomEditButton() {
if self.mode?.wrappedValue == .active {
return self.triggerSave()
} else {
return true
}
}
}
)
试试这个(复制-粘贴-运行)
对于“删除”和“共享”按钮,我会使用.padding(.trailing)
,而对于自定义编辑按钮,则根本不使用任何填充
这是结果
我找到了以下适合我需要的解决方法。这并不完美,但至少可攻丝的区域足够了,看起来还不错
试过了,问题是“可点击区域”对于CustomEdit按钮来说会更少。我发现在按钮附近轻敲却看不到任何东西很烦人effect@AndreiMatei,您可以使用自定义填充,例如对所有边使用.padding(4)
,或使用.padding([.leading,.training],4)
等来指定CustomEdit或任何其他。我已检查了答案,但我发现它只是一种解决方法。这两个元素之间的空间不够。它们距离UX pov太近。两个元素之间的空间不够。它们离UX pov太近了。垂直填充有帮助,但不是enough@AndreiMatei应用。在每个项目周围加上边框,不加填充,也不加填充,以便能够看到那里发生了什么。默认定位中有一个小错误,很可能会在SwiftUI.yeap的下一个版本中解决,期待下一个版本:)。我总是感到烦恼。
import SwiftUI
struct DestinationView: View {
let txt: String
var body: some View {
Text(txt)
.navigationBarTitle(txt)
.navigationBarItems(trailing:
HStack {
Button(action: {
print("tap trasgh")
}) {
Image(systemName: "trash")
}
Button(action: {
print("tap in")
}) {
Image(systemName: "square.and.arrow.down")
}
Button(action: {
print("tap out")
}) {
Image(systemName: "square.and.arrow.up")
}
}.imageScale(.large).padding(.vertical, 8).padding(.horizontal, 3)//.border(Color.blue)
)
}
}
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink(destination: DestinationView(txt: "Destination 1")) {
Text("Destination 1")
}
NavigationLink(destination: DestinationView(txt: "Destination 2")) {
Text("Destination 2")
}
}
}.navigationBarTitle("title")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
HStack(alignment: .center, spacing: 0) {
Button(action: {
////
}) {
Image(systemName: "trash")
.imageScale(.large)
.accessibility(label: Text("Delete"))
.padding(.vertical)
.padding(.horizontal, 8)
}
Button(action: {
////
}) {
Image(systemName: "trash")
.imageScale(.large)
.accessibility(label: Text("Delete"))
.padding(.vertical)
.padding(.horizontal, 8)
}
Button(action: {
////
}) {
Image(systemName: "trash")
.imageScale(.large)
.accessibility(label: Text("Delete"))
.padding(.vertical)
.padding(.leading, 8)
.padding(.trailing, 4)
}
}