首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS开发小技巧:根据文本,字体,计算UILabel高度及宽度

1. 需求:

根据字符串,字体,计算UILabel宽度

根据字符串,字体,宽度,计算UILabel高度

2. 解决:

新建一个分类Category,封装好相关计算方法

调用时,导入该分类,调用相关计算方法得出数值

3. 实现示例:

UILabel+Size分类,实现代码

UILabel+Size.h

//

// UILabel+Size.h

// xiaoanproduct

//

// Created by ChenMan on 2018/1/25.

// Copyright © 2018年. All rights reserved.

//

#import

@interface UILabel (Size)

+ (CGFloat)getHeightByWidth:(CGFloat)width title:(NSString *)title font:(UIFont*)font;

+ (CGFloat)getWidthWithTitle:(NSString *)title font:(UIFont *)font;

@end

UILabel+Size.m

//

// UILabel+Size.m

// xiaoanproduct

//

// Created by ChenMan on 2018/1/25.

// Copyright © 2018年. All rights reserved.

//

#import "UILabel+Size.h"

@implementation UILabel (Size)

+ (CGFloat)getHeightByWidth:(CGFloat)width title:(NSString *)title font:(UIFont *)font

{

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, 0)];

label.text = title;

label.font = font;

label.numberOfLines = 0;

[label sizeToFit];

return height;

}

+ (CGFloat)getWidthWithTitle:(NSString *)title font:(UIFont *)font {

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 1000, 0)];

label.text = title;

label.font = font;

[label sizeToFit];

}

@end

4. 调用示例:

场景:在一个UITableViewCell中,重写Cell的一个模型属性的setter方法,需要先对UILabel对象的text属性赋值后,再进行更新布局约束操作。代码如下:

CMTestTableViewCell.m

- (void)setCellMdl:(SupplementCellModel *)cellMdl{

if (cellMdl) {

_cellMdl = cellMdl;

self.titleLabel.text = cellMdl.titleStr;

self.contextTextField.placeholder = cellMdl.holderStr;

self.rightLbl.text = cellMdl.tailStr;

CGFloat width = [UILabel getWidthWithTitle:self.rightLbl.text font:self.rightLbl.font];

[self.rightLbl mas_updateConstraints:^(MASConstraintMaker *make) {

}];

self.kind = cellMdl.cellType;

}

}

作者:陈满iOS

链接:https://www.jianshu.com/p/c26c168efe45

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180304B0813Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券