2014-01-15 21 views
1

在UITableViewController的Interface Builder中,我指定了原型單元的數量並對它們進行了配置。在該代碼中,numberOsSectionsInTableView:tableView:numberOfRowsInSection:被相應地設置。在這種情況下5個單元格。IB UITableView未定義原型單元格顯示?

在模擬器中以某種方式顯示更多(空)原型單元格。

enter image description here

Interesstingly我有另外一個項目中,我也一樣,但有原型細胞的正確數量是展會。

enter image description here

我該如何解決這個問題,只是表明prototpye細胞所需量J

回答

1

試試這個代碼在你viewDidLoad

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
*// self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];* 
    *//Since memory management is controlled by ARC now, so ignore autorelease* 
    self.tableView.tableFooterView = [[UIView alloc] init] ; 
} 

希望這有助於!

2

我意識到這已經得到了回答,但我覺得實際解釋這裏發生了什麼而不是吠出一些代碼。

首先,原型單元沒有禁止顯示多少個單元。當您設置靜態單元格的數量時,即多少會顯示出來,動態單元格是空白的單元格。您可以使用這些來創建1個動態單元格,其中包含一個圖像的佔位符和一個文本的佔位符。然後你告訴tableview中你要多少行,並通過調用線得到一個可重複使用的單元格的引用:

[tblView dequeueReusableCellWithIdentifier:@" <id> "]; 

,那麼你會適當地設置圖像和文本上返回的單元格。

你正在做的是用默認值創建X「Blank slates」,而不是覆蓋這些值。我提到的方式是出於性能原因和內存使用原因而設計的。我提到的有效方法是在內存中有一個類實例被重用,而你的內存中有許多X都被使用過一次。

其次,您看到空白行的原因是,在不使用分組樣式的tableview中,tableView將顯示儘可能多的行,並將其放在您給定的邊界內。不管你告訴它顯示多少。

原因驗證碼:

self.tableView.tableFooterView = [[UIView alloc] init]; 

刪除空行是因爲頁腳中的最後一行的內容後,並將的tableView將不會顯示任何行,空白或該點之後,否則。

希望這會有所幫助。

+0

這有助於理解。從性能角度來看,它看起來像我將做一個原型單元格,並通過代碼配置其餘部分。 – jerik

相關問題