SwiftUI - リスト行に複数のボタンを表示する
2023-08-22 11:14:48
質問
例えば
List
と2つのボタンが1列に並んでいる場合、行全体をハイライトさせずにどちらのボタンがタップされたかを区別するにはどうしたらよいでしょうか?
このサンプルコードでは、行のボタンのいずれかがタップされると、両方のボタンのアクションコールバックが呼び出されます。
// a simple list with just one row
List {
// both buttons in a HStack so that they appear in a single row
HStack {
Button {
print("button 1 tapped")
} label: {
Text("One")
}
Button {
print("button 2 tapped")
} label: {
Text("Two")
}
}
}
どちらかのボタンが一度だけタップされたとき、両方のボタンのコールバックが呼び出されるのが見えますが、これは私が望んでいるものではありません。
button 1 tapped
button 2 tapped
どのように解決するのですか?
この問題を解決するには BorderlessButtonStyle()を使用します。 または PlainButtonStyle() .
List([1, 2, 3], id: \.self) { row in
HStack {
Button(action: { print("Button at \(row)") }) {
Text("Row: \(row) Name: A")
}
.buttonStyle(BorderlessButtonStyle())
Button(action: { print("Button at \(row)") }) {
Text("Row: \(row) Name: B")
}
.buttonStyle(PlainButtonStyle())
}
}
関連
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] iOS 8 UITableViewのセパレータインセット0が機能しない件
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] swiftで電子メールアドレスを検証する方法は?
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Xcode 6.3 - 現在の iOS Development 証明書または保留中の証明書要求がすでにあります。
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] Xcode 12、iOS Simulator用にビルドしても、iOS用にビルドされたオブジェクトファイルでは、アーキテクチャ「arm64」用にリンクされます。
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] 16進カラーバリューの使用方法
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み] SwiftUIで複数のシート(isPresented:)が機能しない。