如果实现 类似 windows下面的 GetTextExtent的功能
2011-05-28 23:02
453 查看
如果实现 类似 windows下面的 GetTextExtent的功能
在我们进行界面编程的过程中,经常会遇到要动态计算出某段text在指定的控件里面所占用的 范围。这种功能在windows下面其实可以用
GetTextExtent函数来实现,但是在iphone中,我们必须按照下面的方法来自己计算。
方法:
1。 我们首先需要获得 控件的font
2。 利用获得的font,我们使用NSString的函数
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
来计算占用的区域大小。
关于:size参数,size.width是只X方向的最大值,size.height是指Y方向的最大值。一般width就是控件的最大宽度稍微减去一点,而height则尽量大,因为一般都是宽度固定好了,而只是需要计算出控件的所需要的高度。
例子代码如下:
在我们进行界面编程的过程中,经常会遇到要动态计算出某段text在指定的控件里面所占用的 范围。这种功能在windows下面其实可以用
GetTextExtent函数来实现,但是在iphone中,我们必须按照下面的方法来自己计算。
方法:
1。 我们首先需要获得 控件的font
2。 利用获得的font,我们使用NSString的函数
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
来计算占用的区域大小。
关于:size参数,size.width是只X方向的最大值,size.height是指Y方向的最大值。一般width就是控件的最大宽度稍微减去一点,而height则尽量大,因为一般都是宽度固定好了,而只是需要计算出控件的所需要的高度。
例子代码如下:
UIFont * labelFont=Label_.font; CGSize size = [Label_.text sizeWithFont:labelFont constrainedToSize:CGSizeMake(320.0f, 1000.0f) lineBreakMode: UILineBreakModeWordWrap]; Label_.frame=CGRectMake(251, 39, size.width, size.height);
相关文章推荐
- 如何用VC60实现类似windows搜索文件的功能,针对文件夹中包含的文件名进行模糊查
- 如果做一个精美的Login界面(解决了一EditText自带clear的功能,类似iphone的UITextField)
- Android实现类似C#ComBox功能用AutoCompleteTextView实现
- 自定义容器实现类似Windows屏保功能
- android如果重写onDraw实现一个类似TextView可以显示表情和链接的控件(一)
- windows客户端实现类似windows系统右键新建菜单功能
- Yum中实现与apt-get install build-essential功能类似的命令
- android如果重写onDraw实现一个类似TextView可以显示表情和链接的控件(二)
- 【WINDOWS】实现类似qq图标最小化功能
- MFC实现类似Windows绘图的文字输入功能
- 求助.ejs文件中怎么实现类似document.getElementById()的功能?
- FF下是用textContent实现类似innerText的功能
- 如何用android实现类似windows的画板功能
- 如果实现类似微信附近的人功能
- 在Linux中实现类似windows中获取配置文 件的函数GetProfileString
- 【WINDOWS】实现类似qq图标最小化功能
- Android实现类似C#ComBox功能用AutoCompleteTextView实现
- 在linux系统下,简单实现类似windows的_splitpath函数的功能
- 20、在Linux中实现类似windows中获取配置文件的函数GetProfileString
- Yum中实现与apt-get install build-essential功能类似的命令