Giter VIP home page Giter VIP logo

Comments (5)

dreampiggy avatar dreampiggy commented on May 30, 2024

This introspectAnimatedImage method is just a helper method using https://github.com/siteline/SwiftUI-Introspect to introspect the native UIView (UIImageView here for that animatedImageView variable). I want to test the case:

  • When binding value turn to false, the updateUIView from SwiftUI is called, then UIImageView.stopAnimating() is called, and then UIImageView.isAnimating turn to false.

from viewinspector.

dreampiggy avatar dreampiggy commented on May 30, 2024

The toturial you post here, seems only showing the case:

  • When toggle the button state, we update the Binding to the value outside.

However, seems my case is:

  • When update the Binding value outside, should toggle the button state

from viewinspector.

nalexn avatar nalexn commented on May 30, 2024

Hey @dreampiggy ,

Your use case should be possible to test, however, after you change the Binding value outside, you'd need to trigger the asynchronous inspection described in the next section.
You may use inspect with delay parameter defaulting to zero.

from viewinspector.

dreampiggy avatar dreampiggy commented on May 30, 2024

This issue can be closed.

For UIViewRepresentable, you have to wrap that into a standalone native SwiftUI view, using a @State to pass to the actual test view's @Binding. And it should have a closure that receive Self and send it outside. Because the structure is copied or you'll lost the @State status.

@nalexn Maybe this problem is about how SwiftUI handle the @Binding & @State ? I test that I can not use Binding(wrappedValue:) from ViewInspector, to mock the same behavior, must use @State, this is the root case.

Using the new test code solve the problem:

https://gist.github.com/dreampiggy/0b83d31428b3bed0e5be7ffd7ac4aa02

from viewinspector.

dreampiggy avatar dreampiggy commented on May 30, 2024

Founded a new issue related to SwiftUI itself ?

Why same code, SwiftUI's NSViewRepresentable call updateNSView once, but UIViewRepresentable call updateUIView twice 😅

Not related to ViewInspector, but just a little curious. Which makes it's a pain to write cross-platform code and test code because of those behavior.

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.