LoginSignup
1
2

More than 1 year has passed since last update.

【SwiftUI】複数行のLinkを左寄せにしたい

Last updated at Posted at 2023-02-04

はじめに

先日SwiftUIのLinkを使用した際に、複数行の要素を左寄せ(=alignmentをleft)にしたかったのですが、少し実装に苦戦したので備忘録です。

以下のキャプチャの、1枚目の状態から2枚目の状態にする為の実装方法について書きます。URLが左寄せになっています。

上手くいかなかった方法

まず思い浮かぶのは下記の様にHStackを使う方法ですが、こちらでは上手く動作しません。

HStack {
   Link(url.absoluteString, destination: url)
   Spacer()
}

こちらも似た方法ですが上手くいきません。

Link(destination: url, label: {
    HStack {
        Text(url.absoluteString)
        Spacer()
    }
})

VStackalignmentとして.leadingを指定する方法も思いつきましたが、こちらも上手くいきません。
単純なTextならこれでも上手く動作しますが、Linkは上手く動作しませんでした。SwiftUIは難しい...。

VStack(alignment: .leading) {
    Link(url.absoluteString, destination: url)
}

上手くいった方法

multilineTextAlignmentを使うと上手く期待通りの表示になりました!!!
iOS13から使えるのもうれしいポイントです。

Link(destination: url, label: {
    Text(url.absoluteString)
        .multilineTextAlignment(.leading)
})

さいごに

私はSwiftUIを勉強し始めたばかりなので、より良い書き方があればお気軽にコメントで教えてください。
さいごに、私がリリースしたSwiftUIのアプリの宣伝をさせてください。

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2