如何在iphone的tableview中增加单元格的高度?

Posted

技术标签:

【中文标题】如何在iphone的tableview中增加单元格的高度?【英文标题】:How to increase the height of the cell in a tableview in iphone? 【发布时间】:2010-02-12 14:56:27 【问题描述】:

我是 iphone 开发新手。我正在解析一个 xml 文件并在表格的每一行中显示标题、日期、视图和摘要。摘要的内容很大,所以单元格中只显示前 3 个单词.如何根据内容的长度增加行的高度。所有的内容都应该正确地放在单元格内,并且应该显示完整的内容。请帮帮我。谢谢。

【问题讨论】:

【参考方案1】:

您可以在 tableView.delegate/datasource 中执行此操作:

- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
   switch (indexPath.row)
       case 0:
         if(indexPath.section==0)
            return 123.0; // first row is 123pt high
       default:
         return 40.0; // all other rows are 40pt high 
   

但这确实会降低滚动性能。理想情况下,您应该使用tableview.rowHeight 将所有行的行高设置为相同。

【讨论】:

我想增加显示摘要的单行的高度 根据 NSIndexPath 返回不同的数字。 你能详细说明你的答案吗?因为我是 iphone 新手,所以我无法理解它。 感谢它的工作,如果我使用分组表并包含 2 个表,我该怎么办。我只想增加第一个表的第一个单元格的高度.. 我为第一部分添加了检查。【参考方案2】:
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    NSString *text = @"write your dynamic text here";
    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
    CGSize constraintSize = CGSizeMake(320.0f, 999);  // Make changes in width as per your label requirement. 

    CGSize textSize = [text sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

    return  textSize.height;

【讨论】:

【参考方案3】:

如果您在一个视图控制器中有多个 tableview,您可以按照以下方法对每个不同的 table view 进行操作。

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

    if (tableView == self.tableViewCampaigns) 

        return 45;
    else if(tableView == self.tableViewAgenda)
        return 32;
    else
        return 29;

【讨论】:

【参考方案4】:

一种方法是手动设置单元格的大小。只需将 ROW_HEIGHT 替换为合适的即可。

cell.frame = CGRectMake(0.0, 0.0, 320.0, ROW_HEIGHT);

【讨论】:

我只想更改一行的高度,而不是所有行的高度。【参考方案5】:

尝试使用根据单元格内容自动管理的 Delegates。

 func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat 
            return 100
        

        func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 
            return UITableViewAutomaticDimension
        

【讨论】:

以上是关于如何在iphone的tableview中增加单元格的高度?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone Tableview 在水平滚动而不是垂直中使用单元格

iPhone 4.3 的 Tableview 中的多个单元格选择

如何通过按下 iPhone 中的按钮将行/单元格动态添加到 UITableView

在 tableView:cellForRowAtIndexPath 中确定 iPhone 和 iPad 的不同单元格:

我想在 tableview 单元格中显示文本字段数据,以替换 iphone 中单元格上的现有数据?

iPhone中的自动tableView单元格大小?