计算字符串绘制所需宽高

[str boundingRectWithSize: options: attributes: context:];

可以用该方法在绘制之前计算需要多大空间。

参数

size

宽高限制,用于计算文本绘制时占据的矩形块。

options

文本绘制时的附加选项。

context

context上下文。包括一些信息,例如如何调整字间距以及缩放。最终,该对象包含的信息将用于文本绘制。该参数可为 nil 。

返回值

一个矩形,大小等于文本绘制完将占据的宽和高。

size 参数是一个constraint ,用于在绘制文本时作为参考。但是,如果绘制完整个文本需要更大的空间,则返回的矩形大小可能比 size 更大。一般,绘制时会采用constraint 提供的宽度,但高度则会根据需要而定。

NSStringDrawingOptions

文本绘制选项。

enum {

NSStringDrawingTruncatesLastVisibleLine= 1 << 5,

NSStringDrawingUsesLineFragmentOrigin= 1 << 0,

NSStringDrawingUsesFontLeading= 1 << 1,

NSStringDrawingUsesDeviceMetrics= 1 << 3,

};

typedef NSInteger NSStringDrawingOptions;

常量

NSStringDrawingTruncatesLastVisibleLine

如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果指定了NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略。(Truncate:截取、删节)

NSStringDrawingUsesLineFragmentOrigin

绘制文本时使用 line fragement origin 而不是 baseline origin。(整个文本将以每行组成的矩形为单位计算整个文本的尺寸。)

(fragement:断裂、拆分、破裂;碎片,片段;)

NSStringDrawingUsesFontLeading

计算行高时使用行间距。(字体大小+行间距=行高)

NSStringDrawingUsesDeviceMetrics

计算布局时使用图元字形(而不是印刷字体)。

时间: 2024-10-25 14:06:56

计算字符串绘制所需宽高的相关文章

当Bitmap的宽度大于ImageView的最大显示宽度时对ImageView的宽高重新计算来适应Bitmap的宽高(转)

当bitmap的宽大于ImageView显示控件的宽度时,如果不对ImageView的宽高重新计算,那么Imageview的高度就会超过显示图片的高度,用户体验将会很差,所以我们需要重新计算显示控件的宽高,这里我们假定ImageView的最大宽度为屏幕的宽度.利用下面这个工具类就可以很好解决问题了: Android获取屏幕宽度和高度:// WindowManager manage=getWindowManager();// Display display=manage.getDefaultDis

iOS计算字符串的宽度高度

OC开发中会遇到根据字符串和字体大小来算计算出字符串所占的宽高->> 封装方法如下: #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface XSDKResourceUtil : NSObject //获取字符串宽 +(CGSize)measureSinglelineStringSize:(NSString*)str andFont:(UIFont*)wordFont; //获取字符串宽

frame方式布局一段文子,设置宽高

计算一段文字的宽高 /** * 计算一段文字的宽高 * * @param size 这段文字的最大宽高 * @param options NSStringDrawingUsesLineFragmentOrigin * @param attributes 文字的字体属性 * @param context nil * * @return 返回的是 CGRect 类型,frame */ - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStr

PHP-根据字符串和所用字体计算字符串所占宽高

今天由于用GD画图, 需要把一段文字在一个框内居中, 但是文字的宽度如果用strlen($str) * $font_size来计算的话, 由于文字不是等宽高的, 所以会导致偏离, 最后选用的GD库的imagettfbbox()函数, 其原型如下 array ImageTTFBBox(int size, int angle, string fontfile, string text); 其中返回一个数组, 有八个元素, 描述了四个角的坐标 0     左下角 X 位置 1     左下角 Y 位置

【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件

博客地址 : http://blog.csdn.net/shulianghan/article/details/41520569 代码下载 : -- GitHub : https://github.com/han1202012/WheelViewDemo.git -- CSDN : http://download.csdn.net/detail/han1202012/8208997 ; 博客总结 : 博文内容 : 本文完整地分析了 WheelView 所有的源码, 包括其适配器类型, 两种回调接

JS-自制提速小工具:开发页面时需要按比例计算宽高值的快速计算器

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name="author" content"郭菊锋,[email protected]"> <title>开发页面时需要按比例计算宽高值得快速计算器</title> </head> <body> <p id="

计算文本宽高

// 计算文字的宽高 NSDictionary *attributesDic = @{NSFontAttributeName: self.labelView.font}; CGRect textRect = [text boundingRectWithSize:CGSizeMake(200, 100) options:NSStringDrawingUsesLineFragmentOriginattributes:attributesDic context:nil]; 计算文本宽高

OpenGL ES学习笔记(二)&mdash;&mdash;平滑着色、自适应宽高及三维图像生成

首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <Android学习笔记--OpenGL ES的基本用法.绘制流程与着色器编译>中实现了OpenGL ES的Android版HelloWorld,并且阐明了OpenGL ES的绘制流程,以及编译着色器的流程及注意事项.本文将从现实世界中图形显示的角度,说明OpenGL ES如何使得图像在移动设备上显示的更加真实.首先,物体有各种颜色

Android中ListView嵌套GridView的简单消息流UI(解决宽高问题)

最近搞一个项目,需要用到类似于新浪微博的消息流,即每一项有文字.有九宫格图片,因此这就涉及到ListView或者ScrollView嵌套GridView的问题.其中GridView的高度问题在网上都很容易找到答案,即覆写onMeasure方法,然后设置高度的MeasureSpec.但是宽度问题确实没有什么资料,这里所说的宽度问题是比如GridView的列数为3,那么即使只有一张图片,gridview的宽度也是match_parent的,导致用户点击在图片范围外但是在gridview范围内时Lis