按屏幕大小缩放文本标签

有没有一种方法来缩放文本,以使它接近同一屏幕的房地产无论设备的大小是什么? 我发现,与iPhone相比,iPad尺寸设备上的文字与屏幕尺寸相比太小了。 以下是我正在寻找的一个例子。 请注意,文本百分比大小与设备屏幕大小相似。

在这里输入图像说明在这里输入图像说明

要在标签上设置约束,请参阅以下链接: 如何将背景图像缩放到屏幕大小? 。 我知道你可能没有使用Swift(我正在使用Objective-C),但第一个答案显示了如何在故事板中完成。 做同样的事情,但说到标签。 然后,查看下面的图像,将标签的自动缩小选项从“固定字体大小”更改为“最小字体大小”(请参见下图)。 希望这可以帮助!

更改字体大小

我遇到了同样的问题,需要随着屏幕尺寸的增加,按比例缩放文本。

自适应大小是相当有限的,因为您只能设置大小类的字体大小。 有两个宽度选项的字体大小,紧凑和规则是不是我的解决scheme。

我已经写了一个小的库处理UILabelUITextView自动字体缩放不同的屏幕尺寸。

您可以在全局或UILabelUITextView的特定实例中设置缩放比例。

在这里find它: AMXFontAutoScale

我有我自己的修复,这不是一个点击,但我觉得这是值得的。

步骤1:

testing不同屏幕尺寸的字体大小logging字体大小和最相关的其他尺寸

这是我的意思

我会从一个普通的iPad屏幕开始,select一个工作的字体大小。

在这里输入图像说明

由于我知道屏幕的整个高度将决定字体大小的舒适与否,因此我会logging字体大小以及整个屏幕高度。

在这里输入图像说明

所以字体大小为50 ,高度为1024

然后,我切换到iPhone SE

在这里输入图像说明 在这里输入图像说明

这是非常残酷的,所以我修正了字体大小:

在这里输入图像说明

logging后字体大小为25 ,高度为568

第2步:

打破计算器的应用程序,并find一个常数 ,将字体大小高度 (在我的情况),给予或采取一点。

这是我的意思:

我知道有1024件作品有50件作品,有56件作品有25件作品。

划分50/1024给你.048828125。

乘以568等于27.734375,这对于SE来说会是一个字体大小的小胖子。

重复这个过程,但是使用SE的值做分割产生.0440140845,并检查与iPad的高度产生一个45的字体大小,只是一个小威力强大的iPad屏幕。

所以我把商家分成了几个,结果是0.46左右。

第3步:

连接标签并使用此编号以编程方式 更改字体大小

首先,将标签拖到sockets集合中。 我将自己的连接命名为“headerLabels”,因为它们都位于屏幕的顶部。

在这里输入图像说明

那么,你可以偷走我的​​代码,但只是不要花太多钱;)

// Outlet collection of labels @IBOutlet var headerLabels: [UILabel]! // Who needs a short variable name when we can have a // painfully lengthy one to describe the number we calculated? let relativeFontConstant:CGFloat = 0.046 override func viewDidLoad() { super.viewDidLoad() // Should be in the viewDidLoad so it can load the same time as // the view does. // apply a font size to all the labels. for label in headerLabels { // multiply the height we based it on of the entire view // to the number we calculated label.font = label.font.withSize(self.view.frame.height * relativeFontConstant) } } 

如果你有任何问题,评论,赞美,或侮辱让我知道:)

有一个aspect ratio约束可用。 将此添加到您的label 。 限制左侧和上侧边距以固定label应该使编译器警告无效。

正如@VatsalManot所提到的,学习适合初学者的大小。 这是一个很好的链接:

http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial

希望这可以帮助! 🙂