Giter VIP home page Giter VIP logo

Comments (4)

nalexn avatar nalexn commented on May 29, 2024

I would be helpful if you posted the actual view structure. From the view type you mentioned I can only assume you have a custom view defined as the view builder. This case has been discussed here, so the .viewBuilder() call allows you to unwrap the TupleView inside a custom view. I'm not sure how the tap gesture is related to this, so if you can provide the essential part of the view hierarchy I can help further.

from viewinspector.

nalexn avatar nalexn commented on May 29, 2024

@asam139 please reopen the ticket if you have any questions.

from viewinspector.

bukira avatar bukira commented on May 29, 2024

I have the same issue
my structure is as follows

struct MyView: View {
@ObservedObject var data: Data = Data()
internal let inspection = Inspection() //for testing UI

var body: some View {
    VStack() {
        Spacer()
        if data.isThis {
            AnyView(SampleView(text: "test1", colour: .gray))
            Spacer().frame(height: 10)
        }
        if data.isThis2 {
            AnyView(SampleView(text: "test2", colour: .green))
            Spacer().frame(height: 10)
        }
        if !data.isOnline {
            AnyView(SampleView(text: "test3", colour: .red))
        }
        Spacer().frame(height: 55)
    }.onReceive(inspection.notice) { self.inspection.visit(self, $0) } //for testing UI
}

}

so :let text = try view.vStack().anyView(3).view(SampleView.self).text().string()
works and text = "test 3"

however I can't access the other 2 SampleViews as they are Tuples

InspectableView
▿ content : Content
▿ view : VStack<TupleView<(Spacer, Optional<TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>>, Optional<TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>>, Optional, ModifiedContent<Spacer, _FrameLayout>)>>
▿ _tree : Tree<_VStackLayout, TupleView<(Spacer, Optional<TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>>, Optional<TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>>, Optional, ModifiedContent<Spacer, _FrameLayout>)>>
▿ root : _VStackLayout
▿ alignment : HorizontalAlignment
▿ key : AlignmentKey
- bits : 140735363993224
- spacing : nil
▿ content : TupleView<(Spacer, Optional<TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>>, Optional<TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>>, Optional, ModifiedContent<Spacer, _FrameLayout>)>
▿ value : 5 elements
▿ .0 : Spacer
- minLength : nil
▿ .1 : Optional<TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>>
▿ some : TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>
▿ value : 2 elements
▿ .0 : AnyView
▿ storage : <AnyViewStorage: 0x600003e29bc0>
▿ .1 : ModifiedContent<Spacer, _FrameLayout>
▿ content : Spacer
- minLength : nil
▿ modifier : _FrameLayout
- width : nil
▿ height : Optional
- some : 10.0
▿ alignment : Alignment
▿ horizontal : HorizontalAlignment
▿ key : AlignmentKey
- bits : 140735363993224
▿ vertical : VerticalAlignment
▿ key : AlignmentKey
- bits : 140735363993201
▿ .2 : Optional<TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>>
▿ some : TupleView<(AnyView, ModifiedContent<Spacer, _FrameLayout>)>
▿ value : 2 elements
▿ .0 : AnyView
▿ storage : <AnyViewStorage: 0x600003e296c0>
▿ .1 : ModifiedContent<Spacer, _FrameLayout>
▿ content : Spacer
- minLength : nil
▿ modifier : _FrameLayout
- width : nil
▿ height : Optional
- some : 10.0
▿ alignment : Alignment
▿ horizontal : HorizontalAlignment
▿ key : AlignmentKey
- bits : 140735363993224
▿ vertical : VerticalAlignment
▿ key : AlignmentKey
- bits : 140735363993201
▿ .3 : Optional
▿ some : AnyView
▿ storage : <AnyViewStorage: 0x600003e29740>
▿ .4 : ModifiedContent<Spacer, _FrameLayout>
▿ content : Spacer
- minLength : nil
▿ modifier : _FrameLayout
- width : nil
▿ height : Optional
- some : 55.0
▿ alignment : Alignment
▿ horizontal : HorizontalAlignment
▿ key : AlignmentKey
- bits : 140735363993224
▿ vertical : VerticalAlignment
▿ key : AlignmentKey
- bits : 140735363993201
- modifiers : 0 elements

so how do I access the tuple at vStack index 1? and 2?

(lldb) po view.vStack().anyView(1)
▿ Unable to extract AnyView: please specify its index inside parent view

  • notSupported : "Unable to extract AnyView: please specify its index inside parent view"

from viewinspector.

nalexn avatar nalexn commented on May 29, 2024

For future reference: this has been addressed in #56, while .viewBuilder() will be deprecated in the coming version

from viewinspector.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.