2012-05-14 28 views
0

我有一個顯示應用程序狀態消息的自定義視圖,可以根據需要在我的表視圖上滑動。這工作正常,直到我開始定製我的表格視圖單元格。如何手動分配tableView.rowheight影響給定表視圖的子視圖?

當我手動分配行高度,以我的表視圖細胞initWithSTyle ...

self.TableView.rowHeight = 64.0;

...自定義視圖中顯示不出來了。

我換成上面的代碼與委託方法...

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

return 64.0; 

}

...現在的自定義視圖和以前一樣。

+0

你在哪裏調用'self.TableView.rowHeight = 64.0;'? –

+0

好問題...我想我是在initWithStyle中做到的。這會成爲一個問題嗎? (對不起,我使用heightForRowAtIndexPath後,我從代碼中移除了。) –

回答

1

坐落在視圖控制器rowHeight

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.tableView.rowHeight = 64.0f; 
} 

我認爲initWithStyle爲時尚早,無法設定高度。無論哪種情況,由於您的身高是恆定的,因此設置一次身高(在viewDidLoad中)比爲每個創建的單元格設置一次身高(在initWithStyleheightForRowAtIndexPath中)效率更高。

+0

謝謝。那就是訣竅。我的確在尋找一個非動態的地方來設置單元格的行高。 –

0

您是否創建了繼承UITableVIewCell的自定義單元類,如果是,則customcell的高度與默認單元格的高度不同。因此,您需要更改行的高度以匹配您的customcell; s爲了使它以正確顯示,其他細胞將重疊。

動態設置高度accoring您customcell: -

YourCustomCell *cell = (YourCustomCell *)[tableView cellForRowAtIndexPath:indexPath]; 
return [cell.frame.size.height]; 
+0

謝謝。我確實創建了一個自定義表格視圖單元格類,但它們正常顯示。問題是Table View的子視圖停止出現。當我開始使用heightForRowAtIndexPath委託方法時,這個問題就消失了。但是我還是很好奇它是從什麼原因開始的。 –

+0

您可能已將許多控件添加到自定義單元,這些控件會更改您的自定義單元的高度,但默認高度設置較低,因此如果您未在cellforrowatindexpath中相應設置高度,它們將重疊,並且有些不會顯示 –

0
maintableView = [[UITableView alloc] init]; 
    maintableView.frame = CGRectMake(0, 0, 320, 480); 
    maintableView.rowHeight = 100.0; 
    maintableView.delegate=self; 
    maintableView.dataSource=self; 

它在我的Xcode中工作。試試喜歡它。我認爲它會起作用。

相關問題