【问题标题】:Strange string size detection in iPhoneiPhone中奇怪的字符串大小检测
【发布时间】:2011-03-30 12:43:20
【问题描述】:

我使用 UIWebView 来简单地显示一个字符串,字体大小为 14px(在样式中声明)

字符串大约占 iphone 屏幕的 1/4 - 1/3(高度),宽度限制为 190

然后我使用 NSString sizeWithFont: constrainedToSize: 来检测这个字符串到底有多大。

UIFont *font = [UIFont fontWithName:@"ArialMT" size:14.0f];

CGSize titleConstraint = CGSizeMake(190, 440);

CGSize tSize = [s sizeWithFont:font constrainedToSize:titleConstraint lineBreakMode:UILineBreakModeWordWrap];

tSize.height 打印为 85

但实际上我认为是120多,屏幕高度的1/4 - 1/3。

为什么字符串大小测量和实际的 UIWebView 之间会有这样的差异?

问题是UIFont的大小不等于14px? (在 UIWebView 中,字体大小为 14px,在字符串 sizeWithFont 中我使用字体大小 14.0f)

如果是,我应该如何将html px字体大小转换为iPhone UIFont大小?

谢谢

【问题讨论】:

    标签: iphone fonts uiwebview size


    【解决方案1】:

    sizeWithFont: 方法为您提供了直接绘制 NSString 所需的大小。 UIWebView 会在其周围设置一个边距,对其应用 CSS 内容,并且可能会在绘制之前执行一些神奇的“使它看起来更适合 Web 浏览器”算法。

    我不确定是否有任何方法可以计算 UIWebView 将使用的大小。我会推荐其中一种替代方案。

    • 如果获得完美的位置很重要,请不要使用 UIWebView。实现您自己的文本绘制代码。
    • 只需调整大小,直到看起来合适为止。 (不清楚为什么需要计算这个大小,或者文本是否可以改变。)

    【讨论】:

    • 谢谢,是的,我需要尝试不同的值,以便 UIFont 大小与 UIWebView 样式字体大小 px 匹配。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2014-03-03
    • 2021-12-13
    • 2011-03-30
    • 2019-03-17
    • 2012-02-17
    • 2019-11-20
    • 2014-11-21
    相关资源
    最近更新 更多