問題タブ [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.
view - SwiftUI + UIView タッチ イベントの衝突
UIViewRepresentable (いくつかの UIView) を含むビューがあります。その UIView には、独自のアクションを持つサブビューとしてボタンがあります。私には2つの問題があります:
SwiftUI ビューにタップ ジェスチャがアタッチされていない場合、UIView のボタン イベント (UIControlEventTouchUpInside) はシングル タップでは発生せず、ロング タップでのみ発生します。SwiftUI ビューにタップ ジェスチャがアタッチされている場合、UIView のボタンへのタッチは問題なく発生しますが、SwiftUI ビューのイベントも発生します (同時タッチ) SwiftUI Views階層に接続されており、UIViewサブビューに接続されたジェスチャーを考慮していないようです
swiftui - UIRepresentableViewでupdateUIView()が呼び出されないようにしますか?
から削除する前にブール値を変更する必要があると思いますが、構造体のプロパティを変更できないため、方法が見つかりません。UIRepresentableView
ContentView
なぜそれが必要なのですか?updateUIView()
ビューが解放される前に、最後にもう一度呼び出されないようにする必要があるためです。
おそらくこれは XY の問題です...とにかく、私は迷っています。
私はこのようなモデルを持っています:
これはどこですかLottieView
:
私の場合、公開された配列に最近のものがContentView
ある場合にのみ表示します。LottieView
LottieView
これで問題なく動作しますが、モデルでパブリッシュされた配列から最後を削除すると、 updateUIView()
func が SwiftUI によって最後に呼び出さLottieView
れ、ビューから削除される直前にアニメーションが再作成され、ちらつきが表示されます。 .
だから私LottieView
は公開された配列から最後のものを削除する直前に更新できるブール値を追加し、で if/else を実行すると思いましたupdateUIView()
が...これは可能ですか? 方法が見つかりません。
理想的には、アニメーション ビューを作成しmakeUIView()
て何も行わないことですupdateUIView()
が、これは不可能です。最初にサブビューを削除する必要があります。そうしないと、以前に表示されたアニメーションが新しいものに置き換えられません。