簡體   English   中英

iOS中不同tableViews中單元格的高度

[英]Height of cells in different tableViews in iOS

在我看來,我有三個不同的表。 對於前兩個表,我為每個單元格設置了一個固定高度(例如,對於第一個表的每個單元格為30.0f,對於第二個表的每個單元格為45.0f),我已根據每個表中的數據在情節提要中進行了調整。 對於第三張桌子,我希望每個單元格具有不同的高度。 我嘗試了方法

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

但是這種技術的問題在於,為每個表調用此方法。 至於前兩張桌子,我已經調整了情節提要中的高度,但我不知道該如何處理它們。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if(tableView == myTable) {
    return 150.0;
}
}

由於我沒有其他情況的回報,整個事情失敗了。 有什么建議嗎?

您需要返回其他表格的高度。

如果在情節提要中設置了該高度,則可以按以下方式訪問該高度:

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (tableView == myTable)
        return 150.0;

    return tableView.rowHeight;
}

tableView.rowHeight將是您在情節提要中設置的高度

您應該讓所有3個表視圖的視圖控制器委托,並在heightForRowAtIndexPath中檢查哪個表調用了該方法:

因此,在viewDidLoad中添加:

myTable1.delegate = self;
myTable2.delegate = self;
myTable3.delegate = self;

接着:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath     *)indexPath {
if(tableView == myTable1) {
return 150.0;
}
else if(tableView == myTable2) {
return 75.0;
}
else if(tableView == myTable3) {
return 75.0;
}

}

如何使用標簽屬性? 將每個表格的標簽設置為唯一的數字,然后返回高度,如下所示:

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (tableView.tag == 1)
    {
        return 150;
    }
    return 250;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM