如果实现 类似 windows下面的 GetTextExtent的功能

                                                            如果实现 类似 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则尽量大,因为一般都是宽度固定好了,而只是需要计算出控件的所需要的高度。

 

 

  例子代码如下:

  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); 

你可能感兴趣的:(编程,windows,iPhone)