如何根据屏幕尺寸改变字体大小

问题描述 投票:0回答:3

我已在标签中添加了最小字体大小,但字体并未根据屏幕尺寸而变化。

我认为设置最小字体大小并使用自动布局来缩放标签高度就足够了。

但这并没有发生。

ios fonts autolayout uilabel constraints
3个回答
2
投票

使用最小字体比例而不是最小字体大小。最小字体大小在 IOS 6 中已被弃用。在图像中,虽然我的此处表示已修复,但您可以更改它,然后设置比例因子。

要根据屏幕尺寸变化,您可以使用界面生成器来完成一些操作。参见图片。这是使用尺寸类别。

其他方法是将字体大小增加到一个很大的数字并让它缩放,按设备类型在代码中设置它,或者在标签上设置约束以使其在不同大小之间增大和缩小并正确设置缩放比例。


0
投票

TextKit 提供了内置支持,用于制作具有基于自动布局的自适应文本字体大小的 UI。

https://developer.apple.com/design/adaptivity/

查看上述文章中有关动态文本的详细信息。


0
投票

扩展 UIFont {

class func dynamicFontSizeWithName(fontName: String, fontSize: CGFloat) -> UIFont {
    /*
     You can replace 320 with the value you desire based on what resolution the screen is designed in. Here are the values you can replace 414 with, based on the phone:
     E.g :
     iPhone 6, 7, 8 Plus — 414
     iPhone  X — 375
     */
    let screenWidth = UIScreen.main.bounds.size.width
    let calculatedFontSize = screenWidth / 414 * fontSize
    return UIFont(name: fontName, size: calculatedFontSize)!
}

}

使用= label.font = UIFont.dynamicFontSizeWithName(fontName:.......

© www.soinside.com 2019 - 2024. All rights reserved.