2012-09-05 38 views

回答

2

(讓我們假設你有一個你想要填充表視圖的數組。這是填充表視圖的一種非常標準的方式。讓我們把這種理論陣列dataArr

在您的數據源:

- (NSUInteger)tableView:(UITableView *)tv numberOfRowsInSection:(NSUInteger)section 
{ 
    if ([dataArr count] == 0) { 
     // empty table 
     return 1; 
    } 
    return [dataArr count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)ip 
{ 
    UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:@"someCellID"]; 
    if (cell == nil) 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"someCellID"] autorelease]; 

    if ([dataArr count] == 0) { 
     // empty table 
     cell.textLabel.text = @"No new messages"; 
    } else { 
     // configure as normally 
    } 
    return cell; 
} 

在您的委託:

- (CGFloat)tableView:(UITableView *)tv heightForRowAtIndexPath:(NSIndexPath *)ip 
{ 
    if ([dataArr count] == 0) { 
     // empty table 
     return 88.0f; // 2 times the normal height 
    } 
    // else return the normal height: 
    return 44.0f; 
} 
1

這應有助於:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if ([tableView numberOfRowsInSection:1] == 0) { 
     return 200;//some other height 
    }else{ 
     return 44; 
    } 
} 
+0

和什麼我需要做的設置文本? – user1649385

+0

@ user1649385看到我的答案。 – 2012-09-05 14:40:10

+0

@ H2CO3 +1你可以有這個... –

0

基本上要覈對您的數據源,看看是否有在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

沒有消息。例如:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if ([data count] == 0) return 100; 
    else return 44; 
} 
+0

我在哪裏設置數據變量? – user1649385

+0

那麼你需要某種類型的數組或數據結構來填充表格。無論你使用的是數據。 –

1

我想你有一系列你試圖顯示的消息

您可以自定義高度細胞功能

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

     if (messages.count == 0) 
      return 80; 
     else 
      return 44; 
} 

,然後,當你正在創建的細胞:(確保「沒有新信息」的電池具有比普通電池不同的小區標識,所以你的電池重複使用不會搞砸)

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (messages.count == 0) { 
     // create the "No New Messages" cell 
    } 
    else { 
     // create regular cells 
    } 
} 
相關問題