問題タブ [widgetkit]
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.
swift - デバイス画面でウィジェットが常にリロードされる
CoreData と iCloud でウィジェットを使用しています。これらは同じアプリ グループ コンテナーを共有します。少しの間はすべて正常に動作しますが、自発的にウィジェットが絶えずリロードを開始し、デバイス画面とウィジェット ダッシュボード (ウィジェットを検索して追加できる場所) で自分自身をブロックします。
iPhone Simulator (私は iPhone 8 を使用しています) と物理デバイスでも発生します。デバイスでは、より適切に動作します。たとえば、しばらくリロードしてから停止することができます。
つながっていると思いますがNSPersistentContainer
、よくわかりません。私は運がないこれらを試しました:
- Core DataStack、PersistentContainer など、Core Data に関連するすべてのものを遅延ロードします。
- データをより速く
container.performBackgroundTask()
返すために使用します。getTimeline(in:completion:)
1 つのレコードのみでテストしましたが、結果は同じです。 - Core Data ですべてを削除し、静的テキストを表示するサンプル コードを配置します。これは機能し、リロードは消えますが、実際のデータを表示する必要があります
別のシナリオでは、次のログ メッセージが表示されます。
時々クラッシュします
なぜそれが起こるのか分かりません。ときどき動作して Core Data レコードを表示し、タイムラインを正しくリロードするので混乱しますが、ときどきおかしくなります。
ヘルプやガイダンスをいただければ幸いです。
Xcode 12.0.1 (12A7300)
デバイス: iPhone Xs、iOS 14.0.1
ios - iOS 14 ウィジェットでレイアウト (ビュー数など) を動的に更新/変更することは可能ですか?
私は最初の iOS 14 ウィジェットに取り組んでいます。ウィジェットはほとんどが静的で、アニメーションなどの動的コンテンツを表示できないことはわかっています。しかし、ウィジェット内のビューのレイアウト/数を変更することは可能ですか?
私はSwiftUIが初めてなので、ビューのコンテンツを変更する方法がわかりません。
環境:
ウィジェットが最大 5 つのエントリのボタン/リンクを表示する ToDo アプリを想定します。ただし、現在アプリに 3 つのエントリしかない場合、ウィジェットにはもちろん 3 つのリンクのみが表示されます。
アプリはすでに今日のウィジェットを提供しています。ここでは、固定数のエントリ (たとえば 5) のコントロール (ボタン) をウィジェット ビューに追加するだけで問題を解決しました。より少ないエントリを表示する必要がある場合、未使用のコントロールは、ウィジェットがそのビューを更新するときに単純に非表示になります。
SwiftUI で固定数のエントリ (リンク) を持つウィジェット ビューを作成することは問題ありません。しかし、未使用のビューを非表示/削除するにはどうすればよいですか?
SwiftUI では、ビューはsome View
変数であり、コンテンツを動的に変更する方法がわかりません。