【问题标题】:How can I change SKLabelNodes's font size regarding device screen size?如何根据设备屏幕大小更改 SKLabelNodes 的字体大小?
【发布时间】:2015-11-24 07:36:30
【问题描述】:

我正在制作一款通用游戏。一切看起来都不错,除了一些在 iPad 上看起来不错而在 iPhone 上看起来很糟糕的 SKLabelNode。我想如果播放器使用 iPhone 时我可以自动将其大小更改为更小,那就太好了!我知道我可以像这样检查 iOS 版本:

if #available(iOS 8.0, *) {
        skView.showsPhysics = false
    } else {
        // Fallback on earlier versions
    }

也许我可以用这段代码做一些关于屏幕尺寸或设备而不是 iOS 版本的事情?或者怎么做?

【问题讨论】:

    标签: ios swift sprite-kit


    【解决方案1】:

    不要让它特定于设备,而是使用UIScreen.mainScreen().bounds.size检查您的屏幕分辨率,这将为您提供您可以使用的当前分辨率,然后您使用label.fontSize调整基于它的字体大小或缩放基于屏幕大小的层,label.setScale(CGFloat(some #))其中标签是 SKLabelNode 类型的变量。这样做可以让您的应用适应未来的发展。

    【讨论】:

    • 你能在第一部分更具体一点吗?它应该是什么样子? if UIScreen.mainScreen().bounds.size == ??? { label.fontSize = 30}else ... 之类的东西?如果我完全理解你的话,我应该用什么代替???
    • //假设风景:if(UIScreen.mainScreen().bounds.size.width < 480) {label.fontSize = 30} else if (UIScreen.mainScreen().bounds.size.width < 576) {label.fontSize = 32} else {label.fontSize = 34}你会这样使用它
    • @KnightOfDragon 知道了!如果肖像我认为我需要像 320 或更高的数字,是吗?还是谢谢你!
    • 是的,基本上将其保持在您认为最适合您的字体的范围内。您可以在模拟器中创建自定义大小的 iphone 分辨率来测试这一点,因为您永远不知道苹果的未来会怎样,5 为家庭带来了新的分辨率,6 带来了 2 组不同的分辨率,谁知道呢7 天了
    • @KnightOfDragon 很抱歉再次问你,但是在纵向模式下拆分 iPhone4 和 iPad2 分辨率需要哪些数字?我尝试使用不同的数字,但在模拟器上它们总是保持在相同的范围内。我试试if (UIScreen.mainScreen().bounds.size.width < 321) { levelLabel.fontSize = 30 }else if (UIScreen.mainScreen().bounds.size.width < 770) { levelLabel.fontSize = 45 }else { levelLabel.fontSize = 50 }。 iPhone 和 iPad 现在使用 fontSize = 45。我想让 iPhone 使用 30。我想不通
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2016-04-22
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 2021-02-02
    相关资源
    最近更新 更多