SwiftUI에서 @ViewBuilder 뷰를 어떻게 계산할 수 있습니까?

스위프트 펑크

inPutView이 코드 예제에서 어떻게 계산할 수 있는지 알고 싶습니다. 이처럼 작동하는 코드는 몇 가지 뷰를 취하고 배경색을 지정하고 뷰 수를 계산합니다.

여기에 이미지 설명 입력

struct ContentView: View {
    var body: some View {
        
        ModelView(inputView: {
            Text("Hello, world!").padding()
            Text("Hello, world!").padding()
        })
        
    }
}

struct ModelView<Content: View>: View {
    
    var inPutView: () -> Content
    
    init(@ViewBuilder inputView: @escaping () -> Content) { self.inPutView = inputView }
    
    var body: some View {
        
        VStack {
            inPutView()
        }
        .background(Color.green)
        
        Text("count of inPutViews: 2").padding() // Here: How can I found out the count of inPutView?
        
    }
}

최신 정보:

    struct ContentView: View {
    
    var inputViews: [AnyView] = [AnyView(Text("Hello, world!").padding()), AnyView(Text("Hello, world!").padding())]
    
    var body: some View {
        
        ModelView2(inputViews: inputViews)
        
    }
}

    struct ModelView2: View {
    var inputViews: [AnyView]

    var body: some View {
        VStack {
            ForEach(inputViews.indices, id:\.self) { index in
                inputViews[index]
            }
        }
        .background(Color.green)

        Text("count of inPutViews: \(inputViews.count)")
            .padding()
    }
}
파웰로 2222

@ViewBuilder클로저 내부의 개별 뷰인 경우 카운트를 감지 할 수 없습니다 . @ViewBuilder생성 결과보기를하고는 inPutViewA와 처리 단일 보기.

가능한 해결책은 [AnyView]배열을의 입력으로 전달하는 것 입니다 ModelView. 그러나 AnyView일치하지 않습니다 HashableIdentifiable당신이 그것을 사용할 수 있도록 ForEach.

귀하의 경우 다음을 준수하는 별도의 구조체를 만들 수 있습니다 Identifiable.

struct AnyViewItem: Identifiable {
    let id = UUID()
    let view: AnyView
}

다음 ModelView배열로 채 웁니다 AnyViewItem.

struct ModelView: View {
    var inputViews: [AnyViewItem]

    var body: some View {
        VStack {
            ForEach(inputViews) {
                $0.view
            }
        }
        .background(Color.green)

        Text("count of inPutViews: \(inputViews.count)")
            .padding()
    }
}

그런 다음 다음과 같이 기본보기에서 사용할 수 있습니다.

struct ContentView: View {
    var body: some View {
        ModelView(
            inputViews: [
                Text("Hello, world!").padding(),
                Text("Hello, world!").padding(),
            ]
            .map {
                AnyViewItem(view: AnyView($0))
            }
        )
    }
}

코멘트에 제안 또는,이 경우 당신은 할 수 의 반복을 배열하고 :inputViews[AnyView]indices

ForEach(inputViews.indices, id: \.self) {
    inputViews[$0]
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SwiftUI-뷰에서 함수를 어떻게 호출 할 수 있습니까?

분류에서Dev

SwiftUI에서 CustomView의 콘텐츠 수를 어떻게 계산할 수 있습니까?

분류에서Dev

Laravel의 json 값에서 점수를 어떻게 계산할 수 있습니까?

분류에서Dev

이 방정식에서 A를 어떻게 계산할 수 있습니까?

분류에서Dev

SwiftUI에서 서브 뷰에 어떻게 접근 할 수 있습니까?

분류에서Dev

SwiftUI에서 모달 뷰를 닫는 풀다운을 어떻게 구현할 수 있습니까?

분류에서Dev

이 계산을 C #에서 어떻게 할 수 있습니까?

분류에서Dev

Vuejs에서 어떻게 계산할 수 있습니까?

분류에서Dev

Java에서 indexOf로 어떻게 계산할 수 있습니까?

분류에서Dev

SVG 좌표에서 어떻게 계산할 수 있습니까?

분류에서Dev

r에서 문자 변수의 합계를 어떻게 계산할 수 있습니까?

분류에서Dev

웹뷰에서 대화를 어떻게 호출 할 수 있습니까?

분류에서Dev

Android에서 웹뷰를 어떻게 구성 할 수 있습니까?

분류에서Dev

Laravel : 내 뷰에서 json_decode를 어떻게 사용할 수 있습니까?

분류에서Dev

MySQL에서 게시물의 댓글 및 좋아요 수를 어떻게 계산할 수 있습니까?

분류에서Dev

C에서 정수 지수 모듈로 상수를 어떻게 계산할 수 있습니까?

분류에서Dev

파이썬에서 음수 값에 대한 지수를 어떻게 계산할 수 있습니까?

분류에서Dev

Django 관리자에서 모든 가격의 합계를 어떻게 계산할 수 있습니까?

분류에서Dev

통계 모델 OLS에서 절편과 기울기를 어떻게 계산할 수 있습니까?

분류에서Dev

div의 10 %를 어떻게 계산할 수 있습니까? JQuery

분류에서Dev

상태를 어떻게 계산할 수 있습니까?

분류에서Dev

phalconphp의 메인 뷰에 변수를 어떻게 전달할 수 있습니까?

분류에서Dev

BASH에서 xmlstarlet을 사용하여 XML 문서의 요소 수를 어떻게 계산할 수 있습니까?

분류에서Dev

해당 뷰에 대한 PreviewProvider의 한 뷰에서 변수 세트를 어떻게 사용할 수 있습니까?

분류에서Dev

SwiftUI의 DatePicker에서 countDownTimer 모드를 어떻게 설정할 수 있습니까?

분류에서Dev

SwiftUI에서 이미지 색조를 어떻게 설정할 수 있습니까?

분류에서Dev

SwiftUI MacOS 앱에서 NSTouchBar를 어떻게 사용할 수 있습니까?

분류에서Dev

SwiftUI에서 다시보기를 어떻게 초기화 할 수 있습니까?

분류에서Dev

손실 함수는 PyTorch에서 기울기를 계산할 모델을 어떻게 알 수 있습니까?

Related 관련 기사

  1. 1

    SwiftUI-뷰에서 함수를 어떻게 호출 할 수 있습니까?

  2. 2

    SwiftUI에서 CustomView의 콘텐츠 수를 어떻게 계산할 수 있습니까?

  3. 3

    Laravel의 json 값에서 점수를 어떻게 계산할 수 있습니까?

  4. 4

    이 방정식에서 A를 어떻게 계산할 수 있습니까?

  5. 5

    SwiftUI에서 서브 뷰에 어떻게 접근 할 수 있습니까?

  6. 6

    SwiftUI에서 모달 뷰를 닫는 풀다운을 어떻게 구현할 수 있습니까?

  7. 7

    이 계산을 C #에서 어떻게 할 수 있습니까?

  8. 8

    Vuejs에서 어떻게 계산할 수 있습니까?

  9. 9

    Java에서 indexOf로 어떻게 계산할 수 있습니까?

  10. 10

    SVG 좌표에서 어떻게 계산할 수 있습니까?

  11. 11

    r에서 문자 변수의 합계를 어떻게 계산할 수 있습니까?

  12. 12

    웹뷰에서 대화를 어떻게 호출 할 수 있습니까?

  13. 13

    Android에서 웹뷰를 어떻게 구성 할 수 있습니까?

  14. 14

    Laravel : 내 뷰에서 json_decode를 어떻게 사용할 수 있습니까?

  15. 15

    MySQL에서 게시물의 댓글 및 좋아요 수를 어떻게 계산할 수 있습니까?

  16. 16

    C에서 정수 지수 모듈로 상수를 어떻게 계산할 수 있습니까?

  17. 17

    파이썬에서 음수 값에 대한 지수를 어떻게 계산할 수 있습니까?

  18. 18

    Django 관리자에서 모든 가격의 합계를 어떻게 계산할 수 있습니까?

  19. 19

    통계 모델 OLS에서 절편과 기울기를 어떻게 계산할 수 있습니까?

  20. 20

    div의 10 %를 어떻게 계산할 수 있습니까? JQuery

  21. 21

    상태를 어떻게 계산할 수 있습니까?

  22. 22

    phalconphp의 메인 뷰에 변수를 어떻게 전달할 수 있습니까?

  23. 23

    BASH에서 xmlstarlet을 사용하여 XML 문서의 요소 수를 어떻게 계산할 수 있습니까?

  24. 24

    해당 뷰에 대한 PreviewProvider의 한 뷰에서 변수 세트를 어떻게 사용할 수 있습니까?

  25. 25

    SwiftUI의 DatePicker에서 countDownTimer 모드를 어떻게 설정할 수 있습니까?

  26. 26

    SwiftUI에서 이미지 색조를 어떻게 설정할 수 있습니까?

  27. 27

    SwiftUI MacOS 앱에서 NSTouchBar를 어떻게 사용할 수 있습니까?

  28. 28

    SwiftUI에서 다시보기를 어떻게 초기화 할 수 있습니까?

  29. 29

    손실 함수는 PyTorch에서 기울기를 계산할 모델을 어떻게 알 수 있습니까?

뜨겁다태그

보관