ios-自动计算文本框的宽度和高度
来源:互联网 发布:各种技术软件 编辑:程序博客网 时间:2024/05/28 06:05
影响文本框的高和宽的因素:字体大小,文字大小,高度取决于是否限制了宽度,有没有限制最大的宽度和高度
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);
里面包括四个参数 size
、options
、attributes
、context
。size
:一个指定的矩形的大小,一般我们会指定一个矩形区域的Size,比如 CGSizeMake(100, 100)
,具体的值是根据需要来设置。
我一般使用CGSizeMake ('需要的宽度',CGFLOAT_MAX)
,这样会得到一个指定宽度动态高度的size。options
:这个是一个NS_OPTIONS
的枚举表示计算的类型
包括:
1.NSStringDrawingUsesLineFragmentOrigin
:绘制文本时整个文本将以每行组成的矩形为单位计算整个文本的尺寸。
2.NSStringDrawingUsesFontLeading
:根据字体计算高度
3.NSStringDrawingUsesDeviceMetrics
:计算文本尺寸时将以每个字或字形为单位来计算。
4.NSStringDrawingTruncatesLastVisibleLine
:这个目前我没怎么用过
一般使用NSStringDrawingUsesFontLeading
和NSStringDrawingUsesLineFragmentOrigin
的组合各个参数是可以组合使用的,如NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine
NSStringDrawingTruncatesLastVisibleLine:
如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果没有指定NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略。
attribute
:包含一个NSDictionary
类型的参数Attributes
key值可以指定:
NSFontAttributeName(字体) 、NSParagraphStyleAttributeName(段落)
等;id是key对应的值,比如字体
UIFont
,段落NSParagraphStyle
等等。context
:包括一些信息,例如如何调整字间距以及缩放。该参数一般可为 nil
-(CGSize)sizeWithString:(NSString *)str font:(UIFont *)font maxSize:(CGSize)maxSize{ NSDictionary *dict=@{NSFontAttributeName:font};//attributes其实就是NSAttributeString的属性,是个字典类型的对象,包含一个NSDictionary类型的参数Attributeskey值可以指定:NSFontAttributeName(字体)NSParagraphStyleAttributeName(段落)等;id是key对应的值,比如字体UIFont,段落NSParagraphStyle等等。 //通常使用NSStringDrawingUsesLineFragmentOrigin,如果options参数为NSStringDrawingUsesLineFragmentOrigin,那么整个文本将以每行组成的矩形为单位计算整个文本的尺寸。 //size:限制尺寸,用于计算文本绘制时占据的矩形块,例如微博开发中size.w不超过scence.w。可以将size.y设置为无限大MAXFLOAT以便于显示所有文字内容。 // 设置文本的换行宽度self.contentLabel.preferredMaxLayoutWidth = [UIScreen mainScreen].bounds.size.width - 16; //context :包括一些信息,例如如何调整字间距以及缩放。该参数一般可为 nil 。 CGSize size=[str boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size; return size;}
- ios-自动计算文本框的宽度和高度
- iOS 计算label的宽度和高度
- [IOS 开发] NSString-计算文本的宽度和高度
- 自动计算UILabel的宽度或则高度
- iOS 动态计算文字高度和宽度
- IOS聊天泡泡,根据内容计算宽度和高度(动态计算高度和宽度)
- UILabel的高度和宽度计算
- 计算文字的宽度和高度
- JAVA 计算字符串的高度和宽度
- 计算字符串的宽度和高度
- 计算文本宽度和高度的方法
- 计算一个字符的宽度和高度
- 计算文字的高度和宽度
- ueditor修改富文本框宽度和高度的方法
- ueditor修改富文本框宽度和高度的方法
- 动态计算UILabel的高度,宽度,自动换行
- IOS 获取文本的高度和宽度
- iOS Label的宽度和高度自适应
- 栈和队列相关题目
- mysql用field来定义排序规则
- 互联网应用的十大架构规则
- setState详解
- Unity Button监听onclick在StartCoroutine()中的使用
- ios-自动计算文本框的宽度和高度
- C++中函数重载的实现
- uboot分析之cconsole_init_r函数
- maven的三种部署方式
- 判断一个数是否包含平方因子
- Android——hal库加载操作流程
- centos 7.3 安装配置python3.6.1
- ubuntu16.04 配置Java环境
- jrtplib 官方示例 example2 的问题