Swift版照片疊放視圖:PhotoStackView
前言
之前流行過一種圖片展示視圖——photo stack,即照片疊放視圖。大致上是這個樣子的:
(圖片出自code4app)
現在我們已經能夠使用UICollectionViewLayout來實現這種視圖了。Apple給的示例代碼中就有這樣一個layout,并且示例代碼中不僅僅是展示這樣的視圖,還有非常棒的layout過度動畫(結合手勢)。在這之前,也有非常多的開源代碼能實現這樣的效果。本文正是借鑒了開源的源代碼“PhotoStackView”,使用Objective-C實現,并且帶手勢移動圖片的功能。由于這是上一學期課設的時候拿來用的庫,結果現在找不到了,無法給出鏈接,還望見諒。
最后的效果圖如下
-
移動、添加與刪除
</li>
-
下一張
</li> </ul>
這樣重復造輪子的目的是什么呢?一方面,不使用UICollectionViewLayout而是純粹的用UIView來實現,提高靈活性,方便 “私人訂制”。另一方面,學習大神的源代碼,從中學習一下自定義庫的書寫方式等。最后,swift。。天殺的swift,是誰說swift對新手友好來著
當然,這里也不是簡單的對源代碼的搬運、抄襲與翻譯,我還根據自己的需要給他改了一個bug,添加了一些功能,比如全屏展示與返回等。示例圖如下:- 全屏展示
</ul>
- 使用若干和自己一樣大的view來裝載圖片,每次添加新圖片到視圖上時為其隨機旋轉一定角度,把最前面的這張旋轉角度設為0。
- “view裝載圖片”的意思是,view里面放一個imageView,為什么不直接用imageVIew呢?因為我們要放邊框,邊框可以是圖片,另外在highlighted狀態下也可以用圖片或自定義顏色鋪在圖片上,因此使用一個view統一管理
- 添加pan手勢,當手指移動時讓view跟著做相應平移,手指松開時根據velocity決定返回還是移到最后
- 綜上,我們還需要不少輔助方法,例如獲取頂部圖片和其下標、使用動畫移動view、讓view旋轉到某一度數等 </ul> https://github.com/YiZhuoChen/PhotoStackView-Swift
(圖片有些卡,測試運行時還是非常流暢的)
思路
- 全屏展示
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!