UITextField 中的第一个字母被斜体字体截断

Posted

技术标签:

【中文标题】UITextField 中的第一个字母被斜体字体截断【英文标题】:First letter cuts off with Italic font in UITextField 【发布时间】:2015-04-08 17:00:14 【问题描述】:

我已将斜体字体添加到 UITextFieldUITextAlignmentLeft。当用户键入字符时,例如“j”,这个字符在左侧切断。我尝试添加填充、自定义textrectBoundseditingtextRectBounds,但它们都不起作用。

【问题讨论】:

您是否尝试过更新插图? 我已经尝试覆盖 UITextFeld (CGRect)editingRectForBounds:(CGRect)bounds return CGRectInset(bounds, 2, 0);但这对我不起作用。第一个字母仍然被切断 增加CGRectInset中dx的inset会发生什么,例如CGRectInset(bounds, 10, 0); 它只是将编辑矩形移动到 10px 并且字符仍然从左边切断。 这里也一样,改变插图移动文本但仍然切割斜体。我确实尝试过“textRectForBounds”+“editingRectForBounds”和“drawTextInRect” 【参考方案1】:

你可以创建一个超简单的 UILabel 子类:

class PaddingLabel: UILabel 
    override func drawText(in rect: CGRect) 
        let insets = UIEdgeInsets(top: 0, left: 2, bottom: 0, right: 2)
        super.drawText(in: rect.inset(by: insets))
    

然后,将您的 UILabel 类设置为 PaddingLabel 并根据您的需要调整 insets 值。

【讨论】:

以上是关于UITextField 中的第一个字母被斜体字体截断的主要内容,如果未能解决你的问题,请参考以下文章

英文斜体怎么打

word公式编辑器希腊字母如何斜体

斜体加粗英语字母怎么打?

word中中文保持正体,英文用斜体的方法.

word在输入公式的时候怎么有的字母是斜的有的不是

求助 matlab斜体字母上面加一横要怎么弄