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]Dictionaryに順番を持たせたい

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

[iOS, Swift]で画面回転時のアニメーションを無効化する

‘configure(withApplicationID:)’ is deprecatedと言われた

iOS14のUIDatePickerのデザインをカスタマイズする

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