【问题标题】:How to Know the maximum font size allowed for a given font name?如何知道给定字体名称允许的最大字体大小?
【发布时间】:2012-05-22 05:54:13
【问题描述】:

有没有办法知道字体允许的最大尺寸。

我在做

textInputTextView.font = [UIFont fontWithName:currentFontName size:doubleFontSize];
frame.size = textInputTextView.contentSize;

对于不同的字体,当 doubleFontSize 大于 70 时,我会得到错误的 contentSize。对于某些字体,当 doubleFontSize 变量只有 40 时,我会得到错误的 contentSize。

我猜 textView.font = doubleSizeFont 对于那些特定的字体来说太大了。字体大小在 10 到 30 之间时一切正常。

有没有办法知道特定字体允许的最大尺寸?

详情:

我需要一个来自 UITextView 的图像。我正在使用 UIGraphicsGetImageFromCurrentImageContext 图像生成正常。但我意识到图像质量很低。所以我尝试将 TextView 框架和字体加倍。

当我用大字体写“我是个好孩子”,如果 good 是最合适的词。我得到“我是男孩”最右边的词 good 消失了我在图像的右侧得到一些空白。 多么悲惨 :)

【问题讨论】:

  • 字体只是一组矢量形状,因此没有最大尺寸之类的东西。你可以有一个仅由一个字母组成的整个窗口。你可以再详细一点吗? “错误”的内容大小是什么意思?你在期待什么?
  • 如果您能提供帮助,请编辑问题。
  • 此编辑未提供我要求的信息。发生了什么不应该发生的事情?图片是被截断了还是怎么的?
  • 如何设置图像上下文?你看过UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);吗?也许您的图像上下文只是视网膜屏幕上的@1x?
  • @borrrden 图片没问题。文本从右侧和底部被截断。我在右侧和底部看到白色的额外空间。所以我猜图像大小还可以。

标签: objective-c ios


【解决方案1】:

您可以使用以下代码计算内容的高度/宽度。然后调整框架的大小。这里我的宽度是固定的(290)并计算高度。

CGSize strSize= [DataToBeDisplayed sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:CGSizeMake(290.0,99999.0)];
frame.size.height = strSize.height

【讨论】:

    【解决方案2】:

    我相信您遇到的问题是因为您使用的是 UITextView。文本视图继承自 UIScrollView,因此它不会减小字体大小,只会调整其内容大小并使文本可滚动。

    使用 UITextField 代替,它也继承自 UIView(因此可以用作图像),但允许更好的控制。将其大小固定为您希望它在屏幕上显示的最大值,然后使用[mylabel adjustsFontSizeToFitWidth:Y/N][mylabel setminimumfontsize:somefontsize] 方法,如果输入的文本过多,请对其进行限制。这将为您提供清晰的大字体并在输入时动态调整它

    ~/行尾

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 2017-08-12
      • 2012-04-25
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多