簡體   English   中英

在Objective-C中實現此滾動UI的最佳方法是什么?

[英]What is the best way to implement this scrolling UI in Objective-C?

我正在嘗試實現下圖所示的界面視圖。

UI圖片

該UI由三部分組成,藍色標簽,箭頭標簽和灰色標簽。

在此UI中,需要滿足以下要求。

  • 標簽視圖(藍色)和箭頭標簽依次顯示
  • 藍色標簽可以相互更改其位置(如UITableView)
  • 列表項可以刪除
  • 通過點擊灰色標簽,會出現一個新的藍色標簽,並將其附加在已顯示的最后一個藍色標簽之后。

目前,我認為通過UITableView和自定義表格單元來實現此UI是很好的。 但是我不確定如何實現它,特別是在藍色標簽之間顯示箭頭標簽,在灰色標簽之前附加新的藍色標簽。

有沒有一種很好的方法可以在UITableView中輕松實現這些功能? 或者,還有其他方法可以做到,例如使用UIScrollView嗎?

您的想法和幫助將不勝感激。

如果您要針對iOS9進行構建,則可以使用UIStackView,它非常易於使用並且符合您的要求。您必須將UIStackview與scrollview結合使用。 對於示例,您可以使用以下鏈接中的代碼。

https://gist.github.com/twostraws/a02d4cc09fc7bc16859c

不要使用UIScrollView。 隨着藍色單元格數量的增加,您將使用越來越多的內存。 正確使用UITableView可確保隨着單元格數組長度的增加,內存使用保持固定(UI的內存)。

您在這里有兩個基本選擇:

多個部分,或單個部分。

具有多個部分,每個UITableViewCell是一個藍色單元格。 將UITableViewSectionFooter用於箭頭單元格。 這樣可以確保每個藍色單元格始終有一個箭頭單元格。

在單個部分中,單元數= #ofbluecells *2。然后,使用indexPath.row%2決定是否出隊藍色單元格或箭頭單元格。

無論采用哪種方法,都應使用UITableViewFooterView進行“添加新單元格”行為。

無論采用哪種方法,都可以通過更新數據模型(很可能是數組)然后調用[tableView beginUpdates]來刪除單元格; [tableViewDeleteRowsAtIndexPaths:]; [tableView endUpdates];

要插入一個新的藍色單元格,與刪除相同,只不過要添加到數組中。

無論采用哪種方法,都不必管理單獨的箭頭單元陣列。 如果點擊箭頭單元格無濟於事,我個人將每個藍色單元格分成1個部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM