如何增加iPhone表格视图中单元格的高度?

发布于 2024-08-21 11:48:25 字数 133 浏览 7 评论 0原文

我是 iPhone 开发新手。我正在解析 xml 文件并在表格的每一行中显示标题、日期、视图和摘要。摘要的内容很大,因此单元格中只显示前 3 个单词。如何我相对于内容的长度增加了行的高度。所有内容都应正确适合单元格,并且应显示完整内容。请帮助我。谢谢。

I am new to iphone development.I am parsing a xml file and displaying the title, date, view and summary in each row of a table.The contents of summar is big ,so only first 3 words are displayed in the cell.How can i increase the height of the row with respect to the length of the contents.All the content should fit properly inside the cell and full content should be displayed.Please help me out.Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

狠疯拽 2024-08-28 11:48:25

您可以在 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 将所有行的行高设置为相同。

You can do this in your 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 
   }
}

This does however slow down scroll performance. Ideally you should set the row height for all rows to be identical using tableview.rowHeight.

看轻我的陪伴 2024-08-28 11:48:25
(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;
}
(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;
}
感受沵的脚步 2024-08-28 11:48:25

如果一个视图控制器中有多个表视图,则可以按照以下方法对每个不同的表视图执行操作。

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

    if (tableView == self.tableViewCampaigns) {

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

if you have multiple tableview in one view controller, you can do for each different table view as a below method.

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

    if (tableView == self.tableViewCampaigns) {

        return 45;
    }else if(tableView == self.tableViewAgenda)
        return 32;
    else
        return 29;
}
挖个坑埋了你 2024-08-28 11:48:25

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

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

One way to do it is to manually set the size of the cell. Just replace ROW_HEIGHT with something suitable.

cell.frame = CGRectMake(0.0, 0.0, 320.0, ROW_HEIGHT);
暖树树初阳… 2024-08-28 11:48:25

尝试使用此委托,它根据单元格的内容自动管理。

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

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

Try using this Delegates which automatically manages according to the content of the cell.

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

        func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
            return UITableViewAutomaticDimension
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文