【问题标题】:Dynamic UITableView heightForRowAtIndexPath动态 UITableView heightForRowAtIndexPath
【发布时间】:2015-06-09 19:56:32
【问题描述】:

我正面临这个问题:

我有一个 tableView 和一个 customCell,在我的自定义单元格类中,我为那里的标签设置了字体大小和字体颜色,我的问题是为了计算 heightForRowAtIndexPath 我无权访问标签字体大小,我在该方法中所做的创建具有我在自定义单元格类上设置的相同文本值的临时标签并计算标签高度以便根据内容设置 heightForRowAtIndexPath 高度,但因为我没有正确的字体它给了我不同的高度,我看到每个单元格之间有空格,有什么办法解决这个问题吗?

【问题讨论】:

  • 你可以为每个标签使用不同的字体大小而不是改变每行的高度吗?
  • 如果仅使用 iOS8,您可以使用自动调整大小。如果您支持 iOS8 之前的版本,则创建一个原型单元格。见stackoverflow.com/questions/18746929/…

标签: ios objective-c uitableview


【解决方案1】:

为什么不为不同的字体大小创建全局宏。

#define LABEL1_FONT [UIFont fontWithName:@"Helvetica Neue" size:17]

然后你可以检查高度:

UILabel *gettingSizeLabel = [[UILabel alloc] init];
    gettingSizeLabel.font =LABEL1_FONT;
    gettingSizeLabel.text = yourText;
    CGSize maximumLabelSize = CGSizeMake(291, 9999);

    CGSize expectedSize = [gettingSizeLabel sizeThatFits:maximumLabelSize];

    // Get height required for label title
    float lineHeightInfo = expectedSize.height / LABEL1_FONT.lineHeight;

【讨论】:

  • 我无法为字体大小设置全局宏,现在在我的项目中,我在自定义单元格类上使用 UI_APPEARANCE_SELECTOR,在那里我设置了单元格标签的字体和样式,在那个级别,我确实有正确的大小,所以我在 layoutSubviews 方法上设置了框架,但是在 mi 表视图控制器标签上,在 heightForRowAtIndex 委托上,我创建了与在单元格类上设置的内容相同的临时标签,但是不同之处在于我无法访问标签字体大小,我想知道当一切就绪时是否有机会触发 heightForRow
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
相关资源
最近更新 更多