前提
macOS用のアプリをSwiftUIで作っています。
動的なViewの幅を取得したいと考えています。
該当のソースコード
Swift
1struct ContentView: View { 2 @State var text: String = "" 3 var charArray: [String]{ 4 Array(text).map{String($0)} 5 } 6 var body: some View { 7 VStack { 8 HStack{ 9 ForEach(0..<charArray.count, id: \.self){ 10 Text(charArray[$0]) 11 } 12 }.background(Color.red) 13 TextField("", text: $text) 14 } 15 .frame(width: 200, height: 100) 16 } 17}
このようにTextFieldに打ち込んだ言葉を一文字ずつの配列にし、表示させます。
打ち込む言葉によってHStackの幅、つまり赤い部分の幅が変わりますが、この幅を値として取得したいです。
試したこと
GeometryReaderを使おうとしたところ、HStackが最初から全体に広がってしまい失敗しました。
アドバイスよろしくお願いいたします。
GeometryReaderを使う方法でもそうでない方法でも、言葉ごとに異なる幅を取得できれば教えていただけると幸いです。何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/21 12:52
2022/11/23 02:14
2022/11/27 21:38