如何使“挥杆”中的元素更大? 我正在从事一个SwiftUI项目,我想在其中实现一个具有挥动的列表,但是我想使用圆形图标,而不是默认的矩形背景。但是,我遇到了一个...

问题描述 投票:0回答:0
使用.resizable()和.scaledtofit()控制图标大小。

将图标与circle()一起将图标包装在ZSTACK中,但是圆圈不会显示。

SETTING.TINT(.CLEAR)删除默认矩形。

插图.frame(宽度:50,高度:50),但似乎不会影响可敲击区域。

    这里是我目前的实施:
  1. import SwiftUI struct SwipeActionsExample: View { @State private var items = ["Item 1", "Item 2", "Item 3"] var body: some View { NavigationView { List { ForEach(items, id: \.self) { item in Text(item) .padding() .frame(maxWidth: .infinity, alignment: .leading) .background(Color.gray.opacity(0.2)) .cornerRadius(10) .foregroundColor(.white) .padding(.vertical, 5) .swipeActions(edge: .trailing) { Button(role: .destructive) { deleteItem(item) } label: { Image(systemName: "trash.circle.fill") .resizable() .scaledToFit() .frame(width: 50, height: 50) .foregroundStyle(.white, .red) } .tint(.clear) Button { renameItem(item) } label: { Image(systemName: "pencil.circle.fill") .resizable() .scaledToFit() .frame(width: 50, height: 50) .foregroundStyle(.white, .blue) } .tint(.clear) } .listRowBackground(Color.black) } } .listStyle(.plain) .background(Color.black) .navigationTitle("Swipe Actions") } } private func deleteItem(_ item: String) { items.removeAll { $0 == item } } private func renameItem(_ item: String) { print("Renaming \(item)") } }
  2. 如何正确地扩大挥杆内部的圆形按钮,同时保持它们可敲击并保持圆形外观?
  3. 在避免默认的矩形滑动背景的同时,有更好的方法来实现这种效果吗?任何建议或替代方法都将不胜感激!
  4. 您可以从符号创建图像,如this Answer
(这是我的答案)。即使该问题针对MacOS,该技术也适用于iOS:

.swipeActions(edge: .trailing) { Button(role: .destructive) { deleteItem(item) } label: { // See https://stackoverflow.com/a/79198934/20386264 ResizedSymbol(systemName: "trash.circle.fill", targetSize: 50) .foregroundStyle(.white, .red) } .tint(.clear) Button { renameItem(item) } label: { ResizedSymbol(systemName: "pencil.circle.fill", targetSize: 50) .foregroundStyle(.white, .blue) } .tint(.clear) }

swift xcode swiftui
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.