WWDC2016セッションメモ「A Peek at 3D Touch」
WWDC2016セッションを見たメモです。
文中の画像やコードは公開情報から引用しています。
正確で詳しい内容をお求めの方は一次情報の確認をおすすめします。
A Peek at 3D Touch
A Peek at 3D Touch - WWDC 2016 - Videos - Apple Developer
ぐっ ぶっ ぴ のやつ。
こんなやつ。
こんなやつとか。
UIPreviewInteraction
新しいやつ。
アプリ内の3D Touchに関する技術。
3D Touchが扱いやすくなりましたよ。
UIPreviewInteractionDelegate
プロトコルに準拠します。
extension ChatDetailViewController :UIPreviewInteractionDelegate
UIPreviewInteraction
UIPreviewInteractionを生成します。
override func viewDidLoad() { super.viewDidLoad() replyPreviewInteraction = UIPreviewInteraction(view: view) replyPreviewInteraction.delegate = self }
状態が二段階になってる。
開始〜プレビューの状態と、プレビュー〜コミットの状態。
ぐっと押して、プレビュー表示の状態。
ぐぐっと押して、コミット完了した状態。
デリゲートメソッド
開始されたときのデリゲートメソッド。
previewInteractionShouldBegin()
開始〜プレビューまでの状態の時に、
押す強さが更新されたら呼ばれるデリゲートメソッド。
func previewInteraction(_ previewInteraction: UIPreviewInteraction, didUpdatePreviewTransition transitionProgress: CGFloat, ended: Bool) { //ビューの更新処理 updateForPreview(progress: transitionProgress) if ended { //プレビューの完了処理 completePreview() } }
プレビューがキャンセルされたら呼ばれるデリゲートメソッド。
指を離した時ですね。
func previewInteractionDidCancel(_ previewInteraction: UIPreviewInteraction) { //キャンセル処理 UIView.animate(withDuration: 0.4) { self.updateForPreview(progress: 0) self.resetToInitialAppearance() } }
プレビュー〜コミットまでの時に、
押す強さが更新されたら呼ばれるデリゲートメソッド。
func previewInteraction(_ previewInteraction: UIPreviewInteraction, didUpdateCommitTransition transitionProgress: CGFloat, ended: Bool) { //ビューの更新処理 updateForCommit(progress: transitionProgress) if ended { //コミットの完了処理 completeCommit() } }
感想
この操作ができることをどうやってユーザーに知らせるかが課題ではある。
扱いやすくなったのではりきって3D Touchするぞー!
WWDC2016セッションメモシリーズはこちら
WWDC2016 カテゴリーの記事一覧 - ROADTO みちログ
WWDCビデオ「A Peek at 3D Touch」拝聴。
— ひとのみち (@hitonomichi) 2016年6月26日
操作の速攻性はあるから使いたい。どうやってこの機能があるか知らせば良いのか。チュートリアルか。