天天看點

iOS_UI進階【拖拽排序】的實作

拖拽排序是新聞類的app可以說是必有的互動設計,如今日頭條,網易新聞等。拖拽排序是一個互動體驗非常好的設計,簡單,友善。

今日頭條的拖拽排序界面

iOS_UI進階【拖拽排序】的實作

我實作的長按拖拽排序效果

iOS_UI進階【拖拽排序】的實作

實作方案

1.給collectionviewcell添加一個長按手勢,通過協定把手勢傳遞到collectionview所在的控制器中。

2.開始長按時對cell進行截圖,并隐藏cell。

3、在手勢移動的時候,移動截圖視圖,用周遊的方法求出截圖移動到哪個cell的位置,再調用系統的api交換這個cell和隐藏cell的位置,并且資料源中的資料也需要調整順序

4.手勢停止時,移除截圖的view,顯示隐藏cell

其他

代碼還可以進一步封裝,寫一個資料管理類datatool,datatool作為collectionview的資料源,所有的資料源方法都寫到datatool類中。手勢的代理方法也在裡面實作,這樣控制器會簡潔很多,控制器就不需要關注拖拽排序的具體邏輯了。大家有空可以自己寫寫看,也許你們有更好的處理方案,可以評論交流一下。

提示

如果你們是從ios9開始适配的話,那麼可以用系統的api,非常簡單好用

繼續閱讀