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ではこれでいけそうなので、困っていたらぜひ。

スポンサーリンク

コメント

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

名前

メールアドレス(任意)

コメント

関連する投稿

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

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

NO IMAGE

[SwiftUI]SwiftUI App Life Cycleに変更したアプリが、アップデートした端末で起動できない時の対処法

[SwiftUI]EnvironmentObjectをウィンドウごとに別々のインスタンスにしたい

NO IMAGE

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

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