問題タブ [uiviewrepresentable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
162 参照

view - SwiftUI + UIView タッチ イベントの衝突

UIViewRepresentable (いくつかの UIView) を含むビューがあります。その UIView には、独自のアクションを持つサブビューとしてボタンがあります。私には2つの問題があります:

SwiftUI ビューにタップ ジェスチャがアタッチされていない場合、UIView のボタン イベント (UIControlEventTouchUpInside) はシングル タップでは発生せず、ロング タップでのみ発生します。SwiftUI ビューにタップ ジェスチャがアタッチされている場合、UIView のボタンへのタッチは問題なく発生しますが、SwiftUI ビューのイベントも発生します (同時タッチ) SwiftUI Views階層に接続されており、UIViewサブビューに接続されたジェスチャーを考慮していないようです

0 投票する
1 に答える
179 参照

swiftui - UIRepresentableViewでupdateUIView()が呼び出されないようにしますか?

から削除する前にブール値を変更する必要があると思いますが、構造体のプロパティを変更できないため、方法が見つかりません。UIRepresentableViewContentView

なぜそれが必要なのですか?updateUIView()ビューが解放される前に、最後にもう一度呼び出されないようにする必要があるためです。

おそらくこれは XY の問題です...とにかく、私は迷っています。


私はこのようなモデルを持っています:

これはどこですかLottieView

私の場合、公開された配列に最近のものがContentViewある場合にのみ表示します。LottieView

LottieViewこれで問題なく動作しますが、モデルでパブリッシュされた配列から最後を削除すると、 updateUIView()func が SwiftUI によって最後に呼び出さLottieViewれ、ビューから削除される直前にアニメーションが再作成され、ちらつきが表示されます。 .

だから私LottieViewは公開された配列から最後のものを削除する直前に更新できるブール値を追加し、で if/else を実行すると思いましたupdateUIView()が...これは可能ですか? 方法が見つかりません。

理想的には、アニメーション ビューを作成しmakeUIView()て何も行わないことですupdateUIView()が、これは不可能です。最初にサブビューを削除する必要があります。そうしないと、以前に表示されたアニメーションが新しいものに置き換えられません。