ios画像プレビューライブラリ Serrata について
概要
Serrata は Twitter や LINE 等で画像をタップした時のような画面を簡単に作れるライブラリ。 これの使い方についてまとめる。
使い方
画面遷移は下記の流れになる。
画像一覧 ( TableView, CollectionView ) -> SlideLeafViewController ( 画像プレビュー ) -> 投稿詳細
実装方法は下記の通り。
画像一覧を表示、これは通常通りで良い
画像タップ後は SlideLeaf の配列を作り、SlideLeafViewController に渡して画面遷移
生成時に SlideLeafViewControllerDelegate を渡す
SlideLeafViewControllerDelegate では 下記の内容を記述出来る
code: SlideLeafViewControllerDelegate.swift
extension ViewController: SlideLeafViewControllerDelegate {
// プレビュー下の説明をタップした時に呼び出される (画像詳細ページへ遷移する用)
func tapImageDetailView(slideLeaf: SlideLeaf, pageIndex: Int) {
// code...
}
// プレビューで長押しした時に呼び出される
func longPressImageView(slideLeafViewController: SlideLeafViewController, slideLeaf: SlideLeaf, pageIndex: Int) {
// code...
}
// プレビューから戻る時に呼び出される
func slideLeafViewControllerDismissed(slideLeaf: SlideLeaf, pageIndex: Int) {
// code...
}
}
無限スクロール対応
SlideLeaf に横スワイプで閲覧出来る画像を設定する訳だが、無限スクロール対応が難しい
しかも画像がロードされていない段階だと画像無しでプレビューに遷移してしまう
画像プレビュー画面はライブラリのVCなので手が付けづらい
出来ることなら SlideLeaf を SlideLeafVC の中で動的に更新したい
この場合、SlideLeafVC に extension で SlideLeaf を動的に更新すれば良さそう