2009-10-27 33 views
4

我想創建一個垂直和水平滾動並具有粘滯的行和列標題的數據網格(這樣您可以在查看行/列標題的同時滾動數據)。這樣做的最好方法是什麼?iPhone:自定義DataGrid視圖,子類UITableView或其他?

我已經考慮過創建自己的自定義DataGrid視圖來處理自己的渲染,但是這看起來像很多工作。好像添加多個UITableViews到一個UIScrollView可能會工作,但我不知道如何使第一行和第一列變得粘滯,而將其餘的一起滾動。或者,也許我可以繼承UITableView併爲其添加列。請參閱http://www.roambi.com/。點擊SuperList示例,並在那裏觀看視圖。

我已經用普通的HTML表格,自定義JavaScript和CSS成功地重新創建了我在UIWebView中查找的效果,但使用此方法在iPhone上的性能很糟糕。

+0

我寫過som我相信這些東西可以解釋你所尋找的東西的基礎知識。我沒有粘性的行標題,但列標題保留在它們應有的位置,大部分的渲染效果都很好。如果您需要修改每行的第一個單元格以保留在相同的位置,我認爲不需要太多。 https://github.com/AlanSamet/ASDataGridView – 2013-08-13 16:18:47

回答

3

我不認爲子類化UITableView是一個很好的匹配您的要求。但是你可以複製UITableView使用的設計模式。這將簡化視圖的開發和使用。

我會去了解它沿着這些路線:

  • 聲明,模仿他們的UITableView同行DataGridViewDelegate和DataGridViewDatasource協議。
  • DataGridView是一個UIScrollView的子類。它有兩個ivars delegatedatasource
  • DataGridViewCell是一個類似於UITableViewCell的UIView子類。
  • 與NSIndexPath類似的一個類別NSIndexPath(UITableView),可以很容易地使用索引路徑來處理行,列和(可選的,如果你想實現它們)部分。
  • DataGridView中調用的數據源的方法和numberOfRowsInDataGridView:numberOfColsInDataGridView:委託方法heightForCellAtIndexPath:widthForCellAtIndexPath:和(或者,如果沒有執行,則使用默認cellWidthcellHeight特性)來計算柵格的大小和設置滾動視圖contentSize屬性。
  • 當DataGridView需要顯示自身或滾動時,調用數據源方法dataGridView:cellAtIndexPath:以獲取要顯示的每個單元格的子視圖。將這些添加爲子視圖。實現像UITableView這樣的單元重用系統。
  • ...

這聽起來像一個大量的工作,但我認爲這是可行的。我不太清楚如何最好地實現固定(非滾動)標題行/列。

0

另一種方法是這樣iOS data grid組成部分 - 它不是免費的,但相當功能齊全,如動畫行刪除和邊框/顏色定製。

相關問題