資料繫結的原則
如果你在寫表檢視控制器的子類**,大部分**都在
uitableviewdelegte
和 uitableview-datasource 方法中。我們將注意力聚焦在如何編寫簡潔的方法**來解決問題上。cellforrowatindexpath 方法中經常會有為每乙個表單元的特定 ui 元素設定值的**。為表單元中 ui 元素設定
值的最佳方法是將**移到別處。現在應該將它移到**呢?這要看你使用的是哪一類自定義表單
元。根據你應用要做到的功能,表檢視需要與相關的資料建立聯絡。
這種技術通常稱為
資料繫結
(data binding
),在
ios
中並不怎麼被重視,至少與
mac
比較起來是
這樣。繫結資料的最好辦法是將你的資料模型物件傳遞到自定義的表檢視單元並讓其繫結資料。
我們根據關聯資料的方式將表檢視單元分為三種型別。第一類是
uitableviewcell
的子類,它
是用來顯示特定型別資料的自定義表單元,一般情況下都與應用的特定資訊繫結。
rss
閱讀器中展示
推送資訊的
feedcell
就是乙個例子。
第二類的作用與蘋果公司的
uitableviewcell
實現類似。你建立指定樣式的表單元,這些表單
元可以在其他類或工程中用來顯示多種型別的資料模型。舉個例子,你可以建立像
mytableviewswitchcell
這種可以顯示標題文字、
uiswitch
開關,或像
mytableviewinputcell
這種可以顯示標題文字以及顯示資料項
uitextfield
文字框的通用類。
第三類表單元就是
uikit
框架提供的原生
uitableviewcell
。無論是哪一種型別,都要盡量把
資料繫結**移到表單元自身中。
下面是第一類的情況,它簡單而直觀。在
feedcell
中編寫接收模型物件(作為引數)的方法
並設定
feed
模型物件的值給特定
ui 元素。也就是說,將你的資料繫結**移到(
uitableviewcell
的子類)
feedcell
中。比方說,在
rss
閱讀器應用中,
feedcell
公用方法看起來應該像下面
這樣:feedcell
中的繫結方法
-(void) bind:(feed*) feedtobedisplayed
我們並不在檢視控制器資料來源方法
cellforrowatindexpath
中寫**,而是將其移到了
uitableviewcell
的子類中。這意味著如果之後需要修改表單元的格式(比如要給
feed
模型物件和
feedcell
新增作者名資訊時),你便可以在那裡(乙個地方)執行操作了。
如果你使用系統預設的
uitableviewcell
來顯示資料,我推薦把這個繫結方法新增到
uitable-
viewcell
的分類類(
category class
)上。第二種情況,你擁有多個使用同一
uitableviewcell
表單元的模型。我建議建立多個分類類,
每個模型乙個;舉個例子,建立
uitableviewcell+feed.h/m
檔案以顯示推送資訊,或是建立
uitableview-
cell+subscription.h/m
檔案以在同一表單元上顯示訂閱資訊。給繫結方法命名的時候需要小心謹慎。如
果分類包含乙個重複的方法名稱,它將會覆蓋前面定義的方法,這種重寫的發生是沒有定義順序的。
我建議用
bind
這樣的方式給它們命名,這樣更易讀和易於理解。比如說像
bindfeed(feed*)
和 bindsubscription:(subscription*)
這樣的命名約定。
第三類情況,你擁有乙個像
mytableviewswitchcell
這樣的通用自定義表單元。在這種情況
下,你也可以使用之前所說的技術。為通用自定義表檢視單元新增分類方法。
通常,你可能會在多個表和多個檢視控制器內重複使用同樣的
feedcell
單元格。將與資料繫結
相關的**移出表檢視控制器(或其他任意通用的檢視控制器)可以減少控制器內的**混亂情況並
簡化**維護工作。
jspersonft有關Table資料繫結(一)
一 前言 在公司來就學著做報表,覺得這個報表學著還是很有意義的。jspersonft我在網上搜了一些有關的資料但是不是很多,現在就是學一點就記載一點。好記性不如爛筆頭嘛!二 在jspersonft定義style樣式,邊框變 黑 加粗 幾個屬性除錯如下 pdf encoding unigb ucs2 ...
iOS TableView實現下拉重新整理資料
1.建立重新整理控制項,可通過xib或 方式建立控制項 void setupdownrefresh 2.將新資料載入到原資料的前面 插入資料前面 self.data insertobject knewdata atindex 0 3.重新整理 並結束重新整理狀態 重新整理tableview self...
iOS TableView實現下拉重新整理資料
1.建立重新整理控制項,可通過xib或 方式建立控制項 void setupdownrefresh 2.將新資料載入到原資料的前面 插入資料前面 self.data insertobject knewdata atindex 0 3.重新整理 並結束重新整理狀態 重新整理tableview self...