0

高さに関して、LazyHStack の動作が HStack と異なるのはなぜですか? (VStack についても同じ)。

import SwiftUI

struct LazyTestView: View {

   var body: some View {

      LazyHStack {

         ForEach(1...10, id: \.self) { int in
            Text("\(int)")
         }

      }
   }
}

struct LazyTestView_Previews: PreviewProvider {

    static var previews: some View {
        LazyTestView()
            .previewLayout(.sizeThatFits)
    }
}

ここに画像の説明を入力

一方、HStack の場合:

import SwiftUI

struct LazyTestView: View {
   var body: some View {
      HStack {
         ForEach(1...10, id: \.self) { int in
            Text("\(int)")
         }
      }
   }
}

ここに画像の説明を入力

.fixedSized()1つの解決策は、LazyHStackに追加することです...

PS: Xcode バージョン 12.5 ベータ (12E5220o)

4

1 に答える 1

3

最初からそうでした。LazyVStack から始めた理由は、Lazy Stacks が保持している可能性のあるすべてのコンテンツを認識していないためです。その理由は、コンテンツのサイズに関係なく安全な方法で準備する必要があるためです。一方、通常の Stacks は自分の子が何であるかを正確に認識しています。したがって、彼らはそのために本当に必要なフレームまたはサイズを取ります。

于 2021-02-07T21:35:01.027 に答える