【问题标题】:UITableCell Height not adjusting properlyUITableCell 高度未正确调整
【发布时间】:2013-07-31 03:46:39
【问题描述】:

我有一个 UITableView 列出了某个项目的详细信息。有些细节需要不止一行才能正常显示。

我正在使用此代码来动态调整单元格的大小:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 1) return 320;

    CGSize maxSize = CGSizeMake(280, MAXFLOAT);
    CGSize cellSize = [[[appDelegate.callList objectAtIndex:callID] objectAtIndex:indexPath.row+1]
                       sizeWithFont:[UIFont systemFontOfSize:17]
                       constrainedToSize:maxSize
                       lineBreakMode:NSLineBreakByWordWrapping];
    return cellSize.height+10;
}

这是一个具有右细节样式的单元格。没有其他的。详细文本标签为 17 号字体。

使用此代码,我得到的单元格切断了下面的单元格:

我知道我显然可以在最后增加 +10,但这样我的单元格就太大了,我不喜欢。

任何帮助表示赞赏!

编辑

我找到了问题。 maxSize 中设置的宽度太大。

有没有什么方法可以在不事先手动输入的情况下找出当前的详细标签?

【问题讨论】:

  • appDelegate.callList 中的文本是大写的,还是cellForRowAtIndexPath: 中的文本是大写的?另外,您是否测量了正确细节的宽度以确保 280 是正确的?对我来说,它看起来可能比那个小一点。
  • 文字原样。没有做外壳。我没有测量 280,那只是一个随机数,似乎可以工作哈哈。
  • 在这个链接里看我的回答stackoverflow.com/questions/17961951/…
  • @AKrush95 无法找到当前的 detailLabel 大小(因为在此方法中,尚未创建单元格。)您可以创建自己的 UITableView 子类并将其设置为您想要的任何内容。

标签: ios cocoa-touch uitableview


【解决方案1】:

请参考以下链接,它是 Xcode 中动态高度 UITableView 单元格的示例:它可能会对您有所帮助。

http://samrayner.com/posts/dynamic-tableview-cells/

【讨论】:

    【解决方案2】:

    你可以使用

    CGSize maximumSize = CGSizeMake(300, 9999); NSString *myString = @"这是一个长字符串,可以换行"; UIFont *myFont = [UIFont fontWithName:@"Helvetica" size:14]; CGSize myStringSize = [myString sizeWithFont:myFont constraintToSize:maximumSize lineBreakMode:self.myLabel.lineBreakMode];

    计算 givin NSString 的显示大小。因此,您可以根据上面的代码更改单元格的高度。此外,您应该在某些单元格的高度更改后重新加载您的表格视图。

    【讨论】:

    • 这不是和我使用的代码几乎一模一样吗?似乎只有 detailtextlabel 的高度增加了,而不是整个标签
    猜你喜欢
    • 2016-06-23
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    相关资源
    最近更新 更多