我是 Swift 新手,正在构建我的第一个应用程序,正如您在图片中看到的,有两个“chevron.right”图标,但一个较小,并且附加在卡片的边缘,在代码我只添加了这个:
Image(systemName: "chevron.right")
.foregroundColor(.gray)
我不知道另一个图标来自哪里,我想它是 NavigationLink 的属性,但我不确定,你能帮我删除它吗?
HStack(spacing: 16) {
ZStack {
Circle()
.fill(mainColor.opacity(0.1))
.frame(width: 50, height: 50)
Image(systemName: "cube.box.fill")
.foregroundColor(mainColor)
.font(.title2)
}
VStack(alignment: .leading, spacing: 8) {
Text(item.itemDescription)
.font(.headline)
.foregroundColor(.primary)
.lineLimit(1)
HStack {
Label(item.brand.isEmpty ? "N/A" : item.brand, systemImage: "tag.fill")
.font(.subheadline)
.foregroundColor(.secondary)
.lineLimit(1)
Spacer()
Label(item.conditionO.isEmpty ? "N/A" : item.conditionO, systemImage: "checkmark.circle.fill")
.font(.subheadline)
.foregroundColor(
item.conditionO.lowercased() == "new" ? .green :
item.conditionO.lowercased() == "used" ? .orange : .gray
)
.lineLimit(1)
}
}
.padding(.leading, 8)
Spacer()
Image(systemName: "chevron.right")
.foregroundColor(.gray)
}
.padding(.vertical, 12)
} ```
额外的“chevron.right”图标由
NavigationLink
自动添加。要删除它,您可以使用 NavigationLink
内的自定义按钮并根据您的需要设置样式,从而有效隐藏默认的附件视图。
修复方法如下:
解决方案:
将
HStack
包裹在 NavigationLink
内并设置 .buttonStyle(.plain)
以避免使用默认配件。
示例代码:
NavigationLink(destination: Text("Detail View")) {
HStack(spacing: 16) {
ZStack {
Circle()
.fill(Color.blue.opacity(0.1))
.frame(width: 50, height: 50)
Image(systemName: "cube.box.fill")
.foregroundColor(.blue)
.font(.title2)
}
VStack(alignment: .leading, spacing: 8) {
Text("Item Description")
.font(.headline)
.foregroundColor(.primary)
.lineLimit(1)
HStack {
Label("Brand Name", systemImage: "tag.fill")
.font(.subheadline)
.foregroundColor(.secondary)
.lineLimit(1)
Spacer()
Label("New", systemImage: "checkmark.circle.fill")
.font(.subheadline)
.foregroundColor(.green)
.lineLimit(1)
}
}
.padding(.leading, 8)
Spacer()
Image(systemName: "chevron.right")
.foregroundColor(.gray)
}
.padding(.vertical, 12)
}
.buttonStyle(.plain)
这可以防止
NavigationLink
自动添加额外的“chevron.right”。