iOS 自适应label高度

方法1:

-(CGFloat)getContentHeight:(NSString*)content
{
    CGSize constraint = CGSizeMake(320, 2000.0f);
    CGSize size = [content boundingRectWithSize:constraint options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:CONTENT_FONT]} context:nil].size;
    return size.height<44? 0.0f:size.height ;
}

方法2;

- (CGSize)getStringRect:(NSString*)aString

{

    CGSize size;

    NSAttributedString* atrString = [[NSAttributedString alloc] initWithString:aString];

    NSRange range = NSMakeRange(0, atrString.length);

    NSDictionary* dic = [atrString attributesAtIndex:0 effectiveRange:&range];

    size = [aString boundingRectWithSize:CGSizeMake(237, 200)  options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;

    return  size;

}

方法3:

 UILabel *describe = (UILabel *)[cell viewWithTag:TAG_One];

    NSString *describeText = info.describe;

    float describeHeight=[self heightForString:describeText fontSize:16 andWidth:width];

    CGRect cellFrame = [cell frame];

    cellFrame.origin = CGPointMake(00);

    describe.text = describeText;

    describe.font=[UIFont systemFontOfSize:16];

    describe.frame=CGRectMake(SPACENAME_H+Star_Height+3*SPACE,[UIScreen mainScreen].bounds.size.width-2*SPACE, describeHeight);

    [describe sizeToFit];


- (float) heightForString:(NSString *)value fontSize:(float)fontSize andWidth:(float)width

{

    CGSize sizeToFit = [value sizeWithFont:[UIFont systemFontOfSize:fontSize] constrainedToSize:CGSizeMake(width, 2000) lineBreakMode:NSLineBreakByCharWrapping];

     return sizeToFit.height;

}

方法4:

   cell.detailLabel.text=info.detailText;

    self.detailHigh=[self getContentHeight:info.detailText];

       cell.detailLabel.numberOfLines=0;

    cell.detailLabel.frame=CGRectMake(0, 36, cell.frame.size.width,  self.detailHigh);

    return cell;    

}

-(CGFloat)getContentHeight:(NSString*)content

{

CGSize constraint = CGSizeMake(SCREEN_WHIDTH-16, 2000.0f);

    CGSize size = [content boundingRectWithSize:constraint options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:16]} context:nil].size;

    return size.height<44? 0.0f:size.height+20 ;

}


5.自动扩展label的长度

-(void)addNikeNameInCell:(DTPMineTableViewFirstCell*)cell with:(DTPMineTableViewCellInfo*)info

{

    UILabel *label=[[UILabel allocinit];

    [label setFont:[UIFont systemFontOfSize:17]];

    [label setText:info.nickName];

    [label sizeToFit];

    label.frame=CGRectMake(678, label.frame.size.width,29);

    label.textColor=[UIColor blackColor];

    [cell addSubview:label];

    [self addMarkInCell:cell with:info after:label];

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值