Ideal Reality

興味の赴くままに

[SwiftUI]List内のButtonやLinkのデザインをNavigationLinkっぽくする方法

SwiftUIのリストにNavigationLinkを入れるとAccessoryTypeがdisclosureIndicatorなTableViewCellになってくれますが、URLを開くLinkButtonだとこのデザインにすることができません。

NavigationLinkみたいなデザインにするButtonStyleはないので、そういう時はLinkButtonlabelを以下のようにして、右側にchevron.rightを並べてやるとそれっぽくなります。

HStack {
    Text("テキスト")
        .foregroundColor(.primary)
    Spacer()
    Image(systemName: "chevron.right")
        .font(Font.system(size: 14, weight: .semibold))
        .foregroundColor(.secondary)
        .opacity(0.5)
}

ちなみに、なぜ新しいButtonStyleを作らないのかというと、新しくButtonStyleを追加したらタップ時に背景が変わらなくなるからです。頻繁に使いたいのであればタップ時の色変更も考慮してButtonStyleを作るのが楽だと思います。

まあ、とりあえずiOS 14ではこれでいけそうなので、困っていたらぜひ。

スポンサーリンク

コメント

投稿されたコメントはありません

名前

メールアドレス(任意)

コメント

関連する投稿

SwiftUIでステータスバーの色を変える方法4つ

[SwiftUI]Apple Watchで画面遷移から戻った際にアニメーションが崩壊するのを防ぐ

SwiftのDecimal(string:)がどれだけ使えるか試してみた

[Swift]Dictionaryに順番を持たせたい

NO IMAGE

SwiftUIでUISwipeGestureRecognizerを使ってスワイプを検出する

iOS13でViewController上部の隙間をなくす