2012-03-14 135 views
0

我有一個靜態的UITableView,我通過cellForRowAtIndexPath方法將其填充到NSDictionary中。以靜態方式在UITableViewCell中以編程方式添加控件UITableView

NSString *key = [sectionKeys objectAtIndex:[indexPath section]]; 
NSArray *contents = [sectionContents objectForKey:key]; 
NSString *contentForThisRow = [contents objectAtIndex:[indexPath row]]; 

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) 
{ 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 

[[cell textLabel] setText:contentForThisRow]; 

認爲運行良好,我還需要添加控件到tableviewcells和每個單元格有不同的控制。當我以編程方式將UITextField添加到cell1時,運行後的視圖直到5個部分都很好,但是當我向下滾動我的tableview時,第6部分的單元格也會獲得UITextField控件。 UIDatePicker也一樣,我的tableview的前5個部分都很好,但在滾動tableview時,最後兩部分也獲得了UIDatePicker控件。

注:我有9個表格視圖中的每個部分都有一個單元格,但前兩個部分包含兩個單元格。

回答

4

我的理解:

你的細胞的佈局得到搞砸了,並從一個細胞對照去另一個。

我的建議:

這是一個普遍的問題,我剛纔面對它,這是非常令人沮喪。經過幾個小時的搜索後,我發現了一個解決方案:爲不同控件的單元格使用不同的單元格標識符。

實施例:

5個細胞:2個細胞僅具有的UITextField,1個細胞與的UITextField和一個UILabel和2個細胞的UIImageView。使用3個不同的小區標識符1爲只有UITextField的單元格,1爲具有UIImageView的單元格,1爲具有UITextField和UILabel的單元格。

希望它有幫助。

+0

我正在動態創建單元格,然後如何爲它們分配標識符,分配標識符和創建控件都發生在cellForRowAtIndexPath中? – Firdous 2012-03-14 07:56:36

+1

是的,只需將'CellIdentifier'的值改爲任何你需要的 – Novarg 2012-03-14 07:58:02

+0

像獵豹一樣工作:)謝謝 – Firdous 2012-03-14 08:04:34

相關問題