按屏幕大小缩放文本标签
有没有一种方法来缩放文本,以使它接近同一屏幕的房地产无论设备的大小是什么? 我发现,与iPhone相比,iPad尺寸设备上的文字与屏幕尺寸相比太小了。 以下是我正在寻找的一个例子。 请注意,文本百分比大小与设备屏幕大小相似。
例
要在标签上设置约束,请参阅以下链接: 如何将背景图像缩放到屏幕大小? 。 我知道你可能没有使用Swift(我正在使用Objective-C),但第一个答案显示了如何在故事板中完成。 做同样的事情,但说到标签。 然后,查看下面的图像,将标签的自动缩小选项从“固定字体大小”更改为“最小字体大小”(请参见下图)。 希望这可以帮助!
我遇到了同样的问题,需要随着屏幕尺寸的增加,按比例缩放文本。
自适应大小是相当有限的,因为您只能设置大小类的字体大小。 有两个宽度选项的字体大小,紧凑和规则是不是我的解决scheme。
我已经写了一个小的库处理UILabel和UITextView自动字体缩放不同的屏幕尺寸。
您可以在全局或UILabel和UITextView的特定实例中设置缩放比例。
在这里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
希望这可以帮助! 🙂
- 如何使以下调用中的属性可选(即允许nil)
- 为什么CFStringEncodings在Swift中没有UTF8?
- 用户位置上的GeoFire查询
- 无法快照查看UIKeyboard?
- 无法用types为'(string:NSString,attributes:)的参数列表调用'subscript'
- GMSMapView显示空白地图
- SLComposeViewController不会为SLServiceTypeFacebook设置initialText
- 如何在Swift 2 / AVPlayer中恢复背景audio?
- 使用Google Service for iOS而不使用GoogleService-Info.plist