【问题标题】:Why Text is cutting from bottom in UITextField?为什么文本在 UITextField 中从底部剪切?
【发布时间】:2011-11-12 02:41:16
【问题描述】:

我在整个应用程序的文本字段和标签中使用自定义字体。我的字体名称是“digital-7.ttf”。现在的问题是我的标签中的文本很好,但在 UITextFields 中它正在从底部剪切文本。当文本字段正在编辑时,文本很好,但是当编辑完成时,它会再次剪切文本。像这样

以这种方式我正在设置它的字体样式 [txtFld setFont:[UIFont fontWithName:@"digital-7" size:25.0]];

info.plist 中添加了字体

请帮帮我

【问题讨论】:

  • 你应该增加文本框的高度来解决你的问题
  • 尝试覆盖editingRectForBounds: 并查看与textRectForBounds 相比,可编辑文本返回的边界矩形是什么。这应该有助于缩小文本被截断的原因

标签: iphone fonts uitextfield


【解决方案1】:

我刚刚在 UITextField 中使用自定义字体遇到了类似的问题,但在我的情况下,它切断了我在顶部的变音符号。

我用FontForge打开字体,并在Element -> OS/2 -> Metrics中将HHead Ascent Offset调整为与Win Ascent Offset相同的值/p>

在您的情况下,它可能是 HHHead Descent Offset。尝试修改这个值

【讨论】:

    【解决方案2】:

    我在使用相同的 Digital-7 字体(尽管是斜体)时遇到了同样的问题。为了建立在 JeanLuc 的答案上,唯一明智的方法是在字体编辑器中修改指标。我也使用了 FontForge,但我采取的步骤有些不同。我打开字体,转到 Element > Font Info... > OS/2 > Metrics 并将 HHead Descent 值(在 Mac 上表示行间距)更改为 Win Descent 值的负数(在 Windows 上表示行间距)。见下文:

    还要确保 Win Ascent 和 HHead Ascent 值相同。您可能还想更改修改字体的名称。完成更改后,单击确定,然后单击文件、生成字体...,选择 ttf 格式并保存。

    【讨论】:

      【解决方案3】:

      编辑字体文件似乎有些繁重。

      您尝试过马尔科姆的建议吗?我正在使用自定义字体和接受 UIEdgeInset

      的自定义子类

      InsetTextField.h

      #import <UIKit/UIKit.h>
      
      @interface InsetTextField : UITextField
      
      @property (assign, nonatomic) UIEdgeInsets insets;
      
      @end
      

      InsetTextField.m

      #import "InsetTextField.h"
      
      @implementation InsetTextField
      
      - (CGRect) textRectForBounds:(CGRect)bounds
      {
          return UIEdgeInsetsInsetRect([super textRectForBounds:bounds], self.insets);
      }
      
      - (CGRect)editingRectForBounds:(CGRect)bounds
      {
          return UIEdgeInsetsInsetRect([super editingRectForBounds:bounds], self.insets);
      }
      
      @end
      

      如果 Digital-7 仍然行为不端,我认为您只能更改字体文件。 :-/

      【讨论】:

      • 当我遇到这个问题时,我使用的是 Xcode 3.2.5,当使用 ios 4.3 打开 xcode 4.0 时,这个问题自动解决了。现在在所有当前版本的 xcode 中,它都运行良好。
      【解决方案4】:

      你应该增加文本框的高度来解决你的问题,或者减小文本的字体大小

      【讨论】:

      • 您可以在照片中看到帧大小。它的框架高度为 50。但仍在剪切文本
      • 不要重复答案。我比你早回复了。
      【解决方案5】:

      这个问题出现在 Xcode 3.2.5 中。在早期版本中,相同的代码效果很好。 :)

      【讨论】:

        猜你喜欢
        • 2021-11-07
        • 1970-01-01
        • 1970-01-01
        • 2017-09-09
        • 1970-01-01
        • 1970-01-01
        • 2018-04-07
        • 2016-11-25
        • 2013-04-06
        相关资源
        最近更新 更多