You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 11.3.x中SpriteKit的SKLabelNode无法渲染英镑符号的临时解决方案咨询

临时解决SKLabelNode无法显示英镑符号£的办法

我之前在做SpriteKit内购界面的时候也碰到过一模一样的问题——其他货币符号都正常渲染,唯独£在SKLabelNode里死活不显示,明明text属性里确实存在这个字符。除了给苹果提交bug,这里有几个亲测有效的临时 workaround:

  • 用Unicode转义序列替换英镑符号
    有时候直接的£字符可能因为编码或者字体字形缺失的问题无法渲染,换成Unicode转义\u{00A3}试试。代码示例:

    // 从SKProduct获取格式化后的价格字符串
    guard let formattedPrice = product.localizedPrice else { return }
    // 替换英镑符号为Unicode转义
    let fixedPrice = formattedPrice.replacingOccurrences(of: "£", with: "\u{00A3}")
    iapButtonLabel.text = "解锁全部 \(fixedPrice)"
    
  • 更换SKLabelNode的字体
    部分默认字体可能没有包含英镑符号的字形,换成字符覆盖更全的系统字体或者第三方字体。比如用San Francisco的完整版本,或者Arial Unicode MS:

    // 尝试使用系统字体的加粗/常规版本,确保包含完整字形
    iapButtonLabel.font = UIFont.systemFont(ofSize: 18, weight: .semibold)
    // 或者指定字符更全的字体
    if let fullFont = UIFont(name: "Arial Unicode MS", size: 18) {
        iapButtonLabel.font = fullFont
    }
    
  • 手动格式化价格,避免系统返回的字符串异常
    不要直接用SKProduct的自动格式化字符串,而是用NumberFormatter自己处理价格,确保符号正确:

    let priceFormatter = NumberFormatter()
    priceFormatter.numberStyle = .currency
    priceFormatter.locale = product.priceLocale
    
    if let customFormattedPrice = priceFormatter.string(from: product.price) {
        // 再次替换符号为Unicode转义,双重保险
        let finalPrice = customFormattedPrice.replacingOccurrences(of: "£", with: "\u{00A3}")
        iapButtonLabel.text = "解锁全部 \(finalPrice)"
    }
    
  • 临时替换为UIKit组件
    如果以上方法都不管用,不妨考虑用UIButton/UILabel代替SKLabelNode——UIKit对特殊字符的渲染支持通常比SpriteKit更稳定。你可以把UI组件添加到SKView上:

    let iapButton = UIButton(type: .roundedRect)
    iapButton.setTitle("解锁全部 £0.99", for: .normal)
    iapButton.frame = CGRect(x: yourSKView.bounds.midX - 100, y: yourSKView.bounds.midY - 22, width: 200, height: 44)
    iapButton.addTarget(self, action: #selector(handleIAPTap), for: .touchUpInside)
    yourSKView.addSubview(iapButton)
    

这些办法都是临时应急的,核心问题还是SKLabelNode的字体渲染bug,提交bug给苹果是长期解决的关键。

内容的提问来源于stack exchange,提问作者Rajan Maharjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:20:28