【问题标题】:sizeToFit Cuts off Some UILabel Font Types Height & Width But Not Others --- Is There A Fix?sizeToFit 会截断一些 UILabel 字体类型的高度和宽度,但不会截断其他字体类型 --- 有修复吗?
【发布时间】:2014-12-17 03:34:15
【问题描述】:

我正在使用自定义字体,但遇到了一些问题。

有些字体可以像这样使用 sizeToFit:

但是,其他自定义字体在左侧和底部被截断,如下所示:

我可以“破解”它,只检查每种字体类型并添加一些像素,但我想知道是否有更简洁的解决方案,甚至解释为什么会发生这种情况。

谢谢!

这是我自定义的 UILabel 字体设置代码

func setNewFont(fontName:String,size:CGFloat)
    {
        self.font = UIFont(name: fontName, size: size)
        sizeToFit()
    }

【问题讨论】:

    标签: ios swift fonts uilabel xcode6


    【解决方案1】:

    这篇文章解释了如何解决垂直问题:

    http://www.andyyardley.com/2012/04/24/custom-ios-fonts-and-how-to-fix-the-vertical-position-problem/

    但是字体的左侧还是被截断了。

    所以除了上面的修复之外,我还覆盖了绘制调用并偏移了 x 值 (调整 xml 文件中的 minLeftBearing 并没有解决任何问题,显然 xcode 会忽略它)。

     override func drawTextInRect(rect: CGRect)
        {
            if(font.fontName == "JennaSue")//JennaSue
            {
                var newBounds:CGRect = CGRectMake(rect.origin.x+2,rect.origin.y,rect.width,rect.height)
                super.drawTextInRect(newBounds)
            }else
            {
                super.drawTextInRect(rect)
            }
        }
    

    【讨论】:

    • 链接已损坏。请编辑您的答案,以便为未来的用户提供有效链接。
    • @Aggressor 链接再次关闭。正是出于这个原因,强烈建议不要在答案中使用链接。请你至少把重要的部分放在这里好吗?谢谢。
    • 这不是一个简单的过程,因此我发布了链接。与其哭泣和投反对票,不如寻找替代方案并发布更新?
    • 那是一篇精彩的文章。通过自定义字体垂直切割问题修复。非常感谢!
    猜你喜欢
    • 2018-07-05
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多