UITableView如何撤銷移動操作

來源:互聯網
上載者:User

標籤:

大熊貓豬·侯佩原創或翻譯作品.歡迎轉載,轉載請註明出處.
如果覺得寫的不好請多提意見,如果覺得不錯請多多支援點贊.謝謝! hopy ;)

我們知道使用UITableView的委託方法canMoveRowAtIndexPath可以決定某一行cell是否可以被移動,也就是控制源cell是否可以被移動,但是如果我們要控制是否可以移動至目的index呢?

一種想法是在moveRowAtIndexPath:中判斷目的index,如果不允許移動,則做反向動作,即刪除目的index位置的cell然後重新添加到源index.

但是這個不能實現,因為此時源cell還未移動到目的index,所以不可以刪除它.但是moveRowAtIndexPath:方法結束後就失去了對移動操作的控制.

其實有一種簡單的方法,就是如果你不想讓移動操作生效,包括任何需要改變介面的操作,你只要簡單重新重新整理TableView視圖就可以了.因為你底層資料沒有變,所以重新整理視圖後介面也就不會發生改變,相當於撤銷移動操作,而且還有動畫效果呢:

如上所示我們禁止Add cell的移動,並且禁止任何其他cell移動到Add cell的後面,即確保Add cell總是在視圖最後一行.

UITableView如何撤銷移動操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.