UICollectionview(三) 拖拽動畫

2021-09-11 11:45:08 字數 1408 閱讀 9395

uicollectionview高階:自定義布局(-) - 掘金

uicollectionview(二) - 掘金

拖拽動畫步驟

新增長按手勢

對手勢狀態監聽

拖拽之後對資料來源的改變

self.longpress = uilongpressgesturerecognizer.init(target: self, action: #selector(longpressmoving(longpress:)))

self.collectionview?.addgesturerecognizer(self.longpress!)

複製**

@objc func longpressmoving(longpress: uilongpressgesturerecognizer) 

//開始移動

self.collectionview?.begininteractivemovementforitem(at: selectindexpath!)

case .changed:

//這裡上報的是當前觸控點的位置

let point = longpress.location(in: self.collectionview)

//更新移動的位置

self.collectionview?.updateinteractivemovementtargetposition(point)

case .ended:

//結束移動

self.collectionview?.endinteractivemovement()

default:

//移動失敗或者取消

//選中狀態清除

self.collectionview?.cancelinteractivemovement()}}

複製**

獲取當前的觸控點let point = longpress.location(in: self.collectionview)

// mark: 拖動

func collectionview(_ collectionview: uicollectionview, canmoveitemat indexpath: indexpath) -> bool

func collectionview(_ collectionview: uicollectionview, moveitemat sourceindexpath: indexpath, to destinationindexpath: indexpath)

複製**

把起始位置的資料和終點位置的資料進行交換。

Flex元件拖拽(三)

一 最最簡單的是直接呼叫ui元件的startdrag方法和stopdragging方法,這2個方法是flash中的所有繼承於sprite類的元件類都支援的。適用於在同乙個容器中的拖拽。思路是監聽需要拖拽的元件的mouse down和mouse up事件,剩下來的有flash幫你自動完成。eg pri...

WPF與緩動 三 指數緩動

wpf與緩動 三 指數緩動 周銀輝 指數緩動給人的感覺是加速度很大.它的原始公式來自 p t math.pow 2,10 t 1 與其他緩動一樣,我在這裡就直接給出其核心 了 指數緩動 protected override double getcurrentvaluecore double defa...

Silverlight動畫學習筆記 三 緩動函式

一 定義 緩動函式 可以將自定義算術公式應用於動畫 二 為什麼要用緩動函式 您可能希望某一物件逼真地彈回或其行為像彈簧一樣。您可以使用關鍵幀動畫甚至 from to by 動畫來大致模擬這些效果,但可能需要執行大量的工作,並且與使用算術公式相比動畫的精確性將降低。三 例項講解 usercontrol...