【问题标题】:How do I make text labels scale the font size with different Apple product screens?如何使文本标签在不同的 Apple 产品屏幕上缩放字体大小?
【发布时间】:2016-06-09 05:17:41
【问题描述】:

这适用于带有 swift 的 ios 开发者。我有一个非常简单的布局:

link1(没有足够的代表来实际发布图片)

我要做的就是确保“结果”标签在每个不同的屏幕尺寸下缩放到大致相同的比例。如下图所示,3.5 屏幕和 iPad 屏幕之间的差异非常明显:

link2

所以我想让 iPad 屏幕上的标签足够大,以占用与 3.5 屏幕上相同百分比的空间,无论是垂直还是水平。我该怎么做呢?我已经阅读了其他几个教程/解决方案,但它们都教给你一些不同的东西,比如如何更改标签大小,而不是字体大小。我尝试添加纵横比约束,但这只会在不改变字体大小的情况下改变它。添加高度/宽度约束也只会更改标签大小而不会更改字体大小。

【问题讨论】:

标签: ios swift ipad fonts label


【解决方案1】:

贤,

这是一篇关于检测设备/屏幕尺寸的超级帖子。

How to detect iPhone 5 (widescreen devices)?

这是我最喜欢的建议,请点击并感谢真正的作者!

添加一个“新的 Swift 文件”-> AppDelegateEx.swift

向 AppDelegate 添加扩展

import UIKit
extension AppDelegate {
    class func isIPhone5 () -> Bool{
         return max(UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height) == 568.0
    }
    class func isIPhone6 () -> Bool {
        return max(UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height) == 667.0
    }
    class func isIPhone6Plus () -> Bool {
        return max(UIScreen.mainScreen().bounds.width,     UIScreen.mainScreen().bounds.height) == 736.0
    }  
}

用法:

if AppDelegate.isIPhone5() {
    collectionViewTopConstraint.constant = 2
}else if AppDelegate.isIPhone6() {
    collectionViewTopConstraint.constant = 20
}

将它与在您的应用程序中设置字体相结合,您现在肯定必须这样做吗?

variable.font = UIFont(name: "Palatino", size: 24)

【讨论】:

  • 通过代码确实是可能的。你有什么方法可以通过 Storyboard 做到这一点吗?
【解决方案2】:

您实际上可以在情节提要中完成。

1,打开故事板上的文件检查器选项卡(第一个选项卡),设置Use auto layoutUse size classes检查。

2、然后你可以进入你的标签属性(Forth tab),你会注意到旁边有一个“+”,点击它添加。

3,选择你喜欢的屏幕大小,可以参考"Adaptivity and Layout"然后选择你的字体大小。

答案参考THIS LINK,你也可以看看

【讨论】:

  • 谢谢!这是我最喜欢的解决方案,因为如果可能的话,我通常更愿意避免使用代码进行自动布局。这样做更容易,而且当我预览情节提要时,我知道我所看到的正是我将要得到的。我仍然遇到的唯一问题是,这真的只能让我区分 iPad 和 iPhone。尽管 iPhone 尺寸不同,但只有相同的紧凑/常规尺寸,所以我无法区分 iPhone 型号之间的文本大小。
  • 我也面临同样的问题,即区分 iPhone 型号之间的文本大小。我知道如果我们以编程方式进行,它将完成。但是想知道使用情节提要。
  • @Ganesh.. 是的,它在故事板里面,你可以根据设备宽度设置不同的字体大小。
  • @Lee : 如何通过故事板?
  • @Ishika 上面的答案是通过故事板设置的。
猜你喜欢
  • 1970-01-01
  • 2020-09-20
  • 2023-03-22
  • 2016-06-07
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 2019-04-28
  • 2018-09-06
相关资源
最近更新 更多