【问题标题】:Getting size of the text in a UITextView获取 UITextView 中文本的大小
【发布时间】:2010-01-28 16:09:04
【问题描述】:

我正在尝试将 UIScrollView 用作 UITextView,但它的顶部会有一个徽标(因此我不能直接使用 UITextView)。

换句话说;我将有一个带有 UIImage 和 UITextView 的 UIScrollView。 textView 的内容是本地化的并且容易改变,所以我不能硬编码它的高度。有没有办法获得“这个字段应该有多大才能适合所有文本”-值,以便我可以正确计算 UIScrollView 的需要高度?

谢谢

【问题讨论】:

    标签: iphone cocoa-touch uiscrollview uitextview


    【解决方案1】:

    我会检查 NSStrings 的 UIStringDrawing 类别,它具有以下方法:

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

    将 size 属性设为具有所需宽度的结构并使用较大的高度值:

    CGSizeMake(width, 999.0f)
    

    【讨论】:

    • 您可以使用常量 FLT_MAX 代替 999.0f
    • 这适用于 UILabel。但是,UITextView 的内部边距也应该被观察到。
    【解决方案2】:

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

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

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

    【讨论】:

    • 这看起来恰到好处。除了它只返回“21”作为高度:/我假设这是我的情况下的一行的高度。我正在使用 lineBreakMode UILineBreakModeWordWrap。文本中有一些格式(换行符)。这可能是问题吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多