在 UITableViewCell ios 中制作动态 UILabel 高度/宽度?

Posted

技术标签:

【中文标题】在 UITableViewCell ios 中制作动态 UILabel 高度/宽度?【英文标题】:Make dynamic UILabel Heights/Widths in UITableViewCell ios? 【发布时间】:2014-04-30 08:20:45 【问题描述】:

我想让标签动态化(当文本大小增加时,高度和宽度会发生变化),在 ios7 中可以吗?发布完整的教程或任何帖子。 提前致谢。

【问题讨论】:

【参考方案1】:

是的。可以这样做:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

static NSString *CellIdentifier = @"Cell";


ItemCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

...

int fontSize = 13;
int height = ROW_HEIGHT_SCALE;

if(height==5)
        fontSize = 10;
    else if(height>5 && height <100)
        fontSize = 12;
    else if(height>100 && height <300)
        fontSize = 16;
    else if(height>300)
        fontSize = 18;


[cell.textLabel setFont:[UIFont fontWithName: @"Arial" size: fontSize]];

...

return cell;

【讨论】:

【参考方案2】:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 
  static NSString *cellIdentifier =@"cell";
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

  if (!cell) 
      cell =[tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
    
 UILabel *itemNameLabel = (UILabel *)[cell viewWithTag:1];
 itemNameLabel.text = @"Your text";
 CGSize labelSize = [self WidthOfCellWithIngredientLine:itemNameLabel];
 itemNameLabel.frame = CGRectMake(10, 10, 250, labelSize.height);



- (CGSize)WidthOfCellWithIngredientLine:(UILabel *)stringLabel

    stringLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:15.0f];
    CGSize maximumLabelSize = CGSizeMake(310, 9999);
    CGSize expectedSize = [stringLabel sizeThatFits:maximumLabelSize];
    return expectedSize;

请注意:根据标签高度也设置tableCell高度。

stringLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:15.0f];

设置您在标签上设置的字体名称和字体大小

【讨论】:

以上是关于在 UITableViewCell ios 中制作动态 UILabel 高度/宽度?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中使用自定义单元格时无法查看 UITableViewCell

滚动时扭曲 UITableViewCell?

IOS如何更新UITableViewCell

iOS自定义UITableViewCell设置UIButton标题标签文字

UITableViewCell 在大型 UITableView (Xcode, iOS) 中不可见时为 nil

在uitableviewcell中制作“加载更多”按钮?