UIPreviewInteractionDelegate

4582 ワード

https://developer.apple.com/documentation/uikit/uipreviewinteractiondelegate
"A set of methods for communicating the progress of a preview interaction."
インタラクティブな進捗をプレビューする方法の集合.

Declaration

@MainActor protocol UIPreviewInteractionDelegate

Overview


プレビューインタラクションは、3 Dタッチインタラクションをステートマシンに抽象化し、遅延ゲートを介してステートマシンとインタラクションします.開発者は、適切なUI動作を実施する責任を負います.
このプロトコルに準拠するオブジェクトを作成し、UIPreviewInteractionインスタンスの遅延ゲート属性に割り当ててください.ユーザが3 Dインタラクションを実行する場合、この遅延ゲートオブジェクトを使用して、プレビューインタラクションで発生した状態の変化に応答します.

Controlling Preview Interaction State Changes

UIPreviewInteractionDelegateの方法では、プレビューインタラクションを開始するかどうか、およびプレビューインタラクションインタフェースを使用して進捗状況を観察する方法を制御できます.これにより、システムとの一貫性を維持しながら、ユーザー体験をカスタマイズできます.
プレビューインタラクションは、2つのメインインタフェースから構成されます.プレビューとコミット.Figure 1はプレビューインタラクションに関するベースステートマシンの可視化である.
Figure 1 Phases, transitions, and delegate methods of a preview interaction
previewInteractionShouldBegin(_:)メソッドは、ユーザがプレビューインタラクションを有するビューをクリックしたときに呼び出される.この方法を実施し、プレビューインタラクションが続行されないようにfalseに戻ってください.trueに戻るか、このオプションのメソッドが実装されていない場合は、インタラクションのプレビューを続行します.
[プレビュー](Preview)インタラクションが開始されると、ユーザがビューを強く押したときに行われる最初のページ(プレビュー)に入ります.このプロセスでは、previewInteraction(_:didUpdatePreviewTransition:ended:)メソッドが繰り返し呼び出され、0から1の間のCGFloat値によって進行状況が通知される.この方法を実装し、transitionProgressパラメータを使用してUIの更新を行い、視覚的なフィードバックを提供してください.
終了パラメータがfalseからtrueに変更されると、プレビューインタラクションは2番目のコミット(commit)に切り替わります.previewInteraction(_:didUpdatePreviewTransition:ended:)遅延メソッド呼び出しはなくなりました.
コミットページの進捗状況はpreviewInteraction(_:didUpdateCommitTransition:ended:) 方法で通知されます.この方法を実装し、transitionProgressパラメータを使用してUIを適切に更新してください.プレビューインタラクションは、終了パラメータがtrueのときに完了します.終了ポイントは、すべてのUI変更が完了した時点である必要があります.
プレビューインタラクションが完了する前の任意の時点で、ユーザが画面から指を移動したり、UIPreviewInteraction instanceのインスタンスでcancel()メソッドを呼び出したりした場合、プレビューインタラクションをキャンセルすることができる.キャンセルされた場合、previewInteractionDidCancel(_:)遅延メソッドが呼び出される.この方法では、現在進行中のすべてのUI切り替えをキャンセルする必要があります.

Preview Interaction User Interface Updates

UIPreviewInteractionは、タッチ圧力の影響を受けず、3 Dタッチインタラクションを実現することができる.これにより、ユーザは、インタラクションモードの理解を容易にするためにUIインタフェースを更新することができる.プレビューインタラクションは、ビューコントローラプレビュー(peekおよびpop)とUITouchの圧力値との間にある.これは、未加工の圧力値を処理することなく、一意のUIを提供する必要があることを意味する.
インタフェースのプレビューとコミットの間、ユーザーはインタフェースを更新して、インタラクションが発生する場所を識別する必要がある場合があります.たとえば、メール・アプリケーションで表の行をクリックすると、他の行がグレー表示されます(プレビュー・ページ).次のコミットページの開始時に、Eメールのポップアップ切り替えが表示されます.コミット・ページによってポップアップ・スイッチが生成され、コミット・ページの終了時のEメール詳細ビューで切り替えられます.
すべてのユーザー体験を提供し、プレビューとコミットインタフェースを同時に提供します.ただし、iOS Humanインタフェースガイドの3 Dタッチ部分に従う必要があります.プレビューインタラクションおよびコミットインタフェースによって進捗を追跡するUI変更を実行するには、UIViewPropertyAnimatorオブジェクトを使用することを考慮してください.このクラスでは、アニメーションを作成し、fractionCompleteプロパティを使用してアニメーションをスクロールできます.previewInteraction(_:didUpdatePreviewTransition:ended:)およびpreviewInteraction(_:didUpdateCommitTransition:ended:) が提供するtransitionProgress属性に完全にマッピングされ、ユーザがUIViewPropertyAnimatorを使用してUIを更新し、ユーザのタッチ圧力に応答することを可能にする.

See Also


3D Touch Interactions


UIPreviewInteraction


ビューを登録して、3 Dタッチとインタラクティブに反応するカスタムユーザーエクスペリエンスのクラスを提供します.
https://developer.apple.com/documentation/uikit/uipreviewinteraction
https://velog.io/@panther222128/UIPreviewInteraction

UIPreviewActionItem


peek quick actionとpeek quick actionグループに適用できるスタイルとpeek quick actionのユーザー可視化タイトルの読み取り専用アクセス者のメソッドセットを定義します.
https://developer.apple.com/documentation/uikit/uipreviewactionitem
https://velog.io/@panther222128/UIPreviewActionItem