Help us understand the problem. What is going on with this article?

設計やライブラリのせいでPeekを実装できなかった話

More than 3 years have passed since last update.

Peek&Popを実装したかったのに、設計やライブラリのせいであきらめざるをえなかった話です。

Viewは反転させないほうが良い

チャット画面のように、上に無限スクロールする画面を作る場合、上にデータを追加するたびにスクロール位置がずれてしまうので、なかなか実装がめんどうです。

メッセージアプリのように UITableView に下詰めで(下から順に)表示する - Qiita を参考にViewを反転させる形で実装したら、コスト的にもパフォーマンス的にも良い感じに実装できました。

が、Viewを反転させるとPeekの挙動が変になってしまいました。具体的にはこうなります。(2のところが反転しています)

peek&pop失敗.gif

頑張って反転中のViewを再度反転できないか試したんですが、うまくできませんでした。なので、Viewを反転させるのはやめた方がよさそうです。

Method Swizzlingはやめた方がよい

https://github.com/icanzilb/EasyAnimation というライブラリを使うと、Peek時に左上から濃いグレーの領域が広がるという、変な挙動になりました。

peek&pop_easyanimation.gif

おそらく、EasyAnimationがMethod swizzlingを使って、View系のメソッドを書き換えているためです。なので、View系のMethod Swizzlingはやめた方がよいです。

Apple公式 アプリ改善のベストプラクティス - Qiita にもあるように、全アプリがPeek&Pop実装することを目指すべきなので、技術選定の結果Peekをあきらめることにならないよう注意しましょう。

sagaraya
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away