在屏幕尺寸中缩放文本标签

有没有办法扩展文本,以便它占用几乎相同的屏幕区域,而不管设备的大小如何? 我发现设备大小上的文本 iPad 与屏幕的大小相比太小了 iPhone. 以下是我正在寻找的例子。 请注意,文本的百分比大小类似于设备屏幕的大小。

例子
已邀请:

奔跑吧少年

赞同来自:

要建立您拥有的标签限制,请参阅此链接:
https://coderoad.ru/27153181/
. 我知道你可能不使用 Swift /我用 Objective-C/, 但第一个答案显示如何在故事板中进行。 制作在那里写的相同的东西,但是对于标签。 然后请参阅下面的图像以更改标签的自动收缩的参数 "Fixed Font Size" 在 "Minimum Font Scale" /查看下面的图像/. 希望它会有所帮助!

石油百科

赞同来自:

我有自己的决定,这不是一个人点击,但我发现它是值得的。

步 1:

看看一些字体大小

对于不同的屏幕尺寸,

写作

尺寸

字体和最重要的

相关的其他维度

.

那就是我的意思 ...

我会从通常的屏幕开始 iPad 并选择工作的字体大小。

https://i.stack.imgur.com/ODNGO.png
正如我知道屏幕的整个高度将确定什么使字体大小方便的字体大小,我录制了字体大小以及所有屏幕高度。

https://i.stack.imgur.com/FJ4Wi.png
因此,字体大小是

50

高度

1024

.

然后我转换为 iPhone SE

https://i.stack.imgur.com/vb7hL.png
这非常可怕,所以我纠正了字体大小:

https://i.stack.imgur.com/Lxgeu.png
录制后,字体大小在级别工作

25

高度

568

.

步 2:

删除计算器应用程序和

找到一个常数

, 哪个绑定

字体尺寸



高度

/在我的情况下/, 给予或带一点。

那就是我的意思:

我知道 50 合作 1024 所以呢 25 合作 568.

分配 50/1024 给你 .048828125.

将此号码乘以 568 一样 27.734375, 什么是有点脂肪的字体大小 SE.

重复此过程,但使用值 SE 要执行司,事实证明 .0440140845, 并用高度检查 iPad 字体大小获得 45, 对于强大的屏幕来说只是一个小小的屏幕 iPad.

因此,我划分了中间的系数,结果是约的数量 0.46.

步 3:

连接标签



修正案

他们的

字体大小软件

, 使用这个号码。

首先将标记拖动到插座的集合。 我打电话给我的联系 'headerLabels', 因为所有这些都位于屏幕的顶部。

https://i.stack.imgur.com/WpoO0.png
那么你似乎可以窃取我的代码,但只是没有赚到太多钱 ;/


// 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/
}
}


如果您有任何疑问,评论,赞美或侮辱,请告诉我 :/

冰洋

赞同来自:

1. 选择您的标签并打开属性检查器。

https://i.stack.imgur.com/Z3jKL.png
2. 按 + 在字体上签名,选择宽度和高度 "Regular", 单击“添加变体”按钮。

https://i.stack.imgur.com/M5d4O.png
3. 将出现另一个字段字体,它将代表一个字体 ipad/大错位 screen/ 在大屏幕上 /滚动视图

/

https://i.stack.imgur.com/6bWaT.png
4. 选择所需的字体 ipad

https://i.stack.imgur.com/7jZCN.png

詹大官人

赞同来自:

当我按比例按比例缩放文本时,我有同样的问题,随着屏幕尺寸的增加。

自适应尺寸非常有限,因为您只能为大小设置字体大小。 两个宽度选项的字体大小的存在,紧凑且常规,对我来说不是一个解决方案。

我写了一个小型库,用于处理自动字体缩放

UILabel



UITextView

对于不同的屏幕尺寸。

您可以全局或特定实例设置缩放。

UILabel



UITextView

.

在这里找到:
https://github.com/alexmx/AMXFontAutoScale

董宝中

赞同来自:

各种屏幕尺寸 acoording 到


// iphone 5s,SE screen width 320
// iphone 6,6s,7,etc width 375
// iphone 7 plus, 8 plus, xs max,etc width 414
if /self.view.frame.width == 320/ {

label.font = UIFont/name: label.font.fontName, size: 16/

} else if /self.view.frame.width == 375/ {

label.font = UIFont/name: label.font.fontName, size: 21/

} else if /self.view.frame.width == 414/ {

label.font = UIFont/name: label.font.fontName, size: 24/

}

龙天

赞同来自:

我的函数中的以下代码有一个不错的行为。 viewDidLoad:

/请注意,屏幕边界在 'points', 不是 'pixels'/


// Set the clock font size according to the height.
// Design was done on iPhone XR with height of 896 points and font size of 98.
if /UIScreen.main.bounds.height != 896/. // Only need code if not on original design size.
{
let scaleFactor: Float = Float/UIScreen.main.bounds.height/ / 896.0
let fontSize = CGFloat/98.0 * scaleFactor/
self.clock.font = self.clock.font.withSize/fontSize/
}


同时使用字体 "Helvetica Neue", 这是固定宽度的字体。 由于某种原因在大型设备上没有完全缩放,因此仍然略低于目标 iPads, 但足够接近。

知食

赞同来自:

纵横比有限制。 将其添加到您的标签上。 在左边和顶级的限制来保护现场标签应该沉默编译器警告。

如上所述 @VatsalManot, 首先,检查自适应校准。 这是一个很好的链接:

http://www.raywenderlich.com/8 ... orial
希望它会有所帮助! :/

要回复问题请先登录注册