1. ホーム
  2. ios

[解決済み] HStackのSpacerでSwiftUIがタップできない件

2023-05-10 19:06:10

質問

私はリストビューを持っていて、リストの各行は、いくつかのテキストビュー()と画像を持つHStackを含む、次のように。

HStack{
    Text(group.name)
    Spacer()
    if (groupModel.required) { Text("Required").color(Color.gray) }
    Image("ic_collapse").renderingMode(.template).rotationEffect(Angle(degrees: 90)).foregroundColor(Color.gray)
}.tapAction { self.groupSelected(self.group) }

これはとてもうまくいっているように見えますが、テキストと画像の間の空の部分(ここで Spacer() のある部分)をタップしても、タップ動作が登録されません。テキストをタップしたときと画像をタップしたときのみ、タップ動作が発生します。

この問題に直面したことのある方/回避策をご存知の方はいらっしゃいますか?

どのように解決するのですか?

最近知ったのですが、こんなのもあります。

HStack {
  ...
}
.contentShape(Rectangle())
.onTapGesture { ... }

私の場合はうまくいく。