2014-01-23 91 views
0

我很想弄清楚如何完全控制我的tableview單元格。我想他們是這個樣子:製作自定義的動態tableview單元格

App mockup

現在我需要知道如何正確管理自己的細胞。我應該製作一個表格視圖單元格子類嗎?我應該在tableview的故事板中完成這一切嗎?這就是我現在所做的。另外,如何基於文本行數量實現動態單元格高度?

感謝

+0

通過查看屏幕截圖,您必須繼承該單元格 –

+1

我認爲您應該將您的問題分爲兩個獨立的線程。基於內容的自定義單元格和動態單元格高度是兩個不同的故事。 – Desdenova

回答

1

你應該繼承的UITableViewCell類,並使用XIB創建自己的自定義單元格。這會給你很大的活力空間。

請參閱本教程如何做到這一點: http://www.appcoda.com/customize-table-view-cells-for-uitableview/

+0

你的答案和給定的鏈接是相當過時的。 – Desdenova

+0

當涉及到UITableViewCell類的子類時,這個答案仍然非常相關。誠然,還有其他技術,但這是我的首選,這是我從中學到的教程。 – ZeMoon

+0

即使我是用戶故事板,我仍應該創建XIB嗎? @akashg –

1

U可以創建自定義視圖,並使用followingin的cellForRowAtIndex

static NSString * [email protected]"MyTableView"; 
UITableViewCell * cell; 
if(cell== nil) 
{ 
    cell = [myTableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    contentCell.tag =100; 
    contentCell=[[ContentOfCell alloc]initWithFrame:CGRectMake(0, 0, 100, 50)]; 
    [cell.contentView addSubview:contentCell]; 

    } 
    else{ 
     // Reusable part. Reuse the UI controls here from existing cell 
     contentCell = (ContentOfCell *)[cell.contentView viewWithTag:100]; 
    } 
    //Assign all the data here 

    contentCell.nameField.text=[arr objectAtIndex:indexPath.section]; 
    //same way for other fields 
    } 

凡contentCell是一個自定義視圖

0

我會盡量回答你的問題分爲三個部分:

  1. 對於動態單元高度是基於文本內容:有一個名爲heightForRowAtIndexPath表視圖委託,則應該通過提供可用的寬度計算該文本的高度是根據它的字體和字體大小的特性,當然,爲此,您可以使用NSString的「sizeWithFont」方法。

  2. 對於細胞外觀的更多控制:您應該製作一個表格視圖單元格子類並在cellForRowAtIndexPath中使用它。

  3. 你應該使用故事板這樣做:沒有必要使用故事板。

+0

我敢肯定,這是不相關的後iOS 6 ... –

相關問題