代码之家  ›  专栏  ›  技术社区  ›  Jonatan Hedborg

获取UITextView中文本的大小

  •  1
  • Jonatan Hedborg  · 技术社区  · 15 年前

    我试图将uiscrollview用作uitextview,但它的顶部会有一个徽标(因此我不能直接使用uitextview)。

    换句话说,我将有一个uiscrollview,其中包含一个uiimage和一个uiextview。textView的内容是本地化的,很容易更改,所以我不能硬编码它的高度。有没有任何方法可以得到“这个字段应该多大才能容纳所有文本”-值,这样我就可以正确地计算uiscrollview所需的高度?

    谢谢

    2 回复  |  直到 15 年前
        1
  •  4
  •   Matthew McGoogan    15 年前

    我将检查具有以下方法的nsstring的uistringdrawing类别:

    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
    

    使大小属性成为具有所需宽度的结构,并使用较大的高度值:

    CGSizeMake(width, 999.0f)
    
        2
  •  3
  •   Felix Lamouroux    15 年前

    可以使用中定义的方法 NSString (UIStringDrawing) :

    - (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
    

    这将返回文本的大小(宽度和高度)。您可能需要添加一些像素作为边距。