Swift中的数学(希腊语)符号?

时间:2017-01-02 12:27:07

标签: macos swift3 xcode8

今天我发现swift 3中的应用程序存在很大问题:所有希腊字母(如图片)都没有出现在应用程序故事板和布局中;所有其他的表情符号和特殊角色。

这是一个Swift错误?我的数学应用程序需要这些字符。

Math Symbols

1 个答案:

答案 0 :(得分:1)

我已经检查了你评论中的三个字符(这些信息需要在你的问题中,而不是在评论中),并且它们都是数学字母数字符号代码块中的非BMP字符。

"" //MATHEMATICAL BOLD SMALL LAMDA   U+1D6CC
"" //MATHEMATICAL BOLD SMALL PHI     U+1D6D7
"" //MATHEMATICAL ITALIC SMALL DELTA U+1D6FF

<强>的iOS

据我测试,iOS 10模拟器中安装的所有字体都没有这些字符的映射字形。

您可能需要:

  • 在您的应用中安装支持这些字符的自己的字体

  • 使用常用的希腊字母将这些字符转换为NSAttribtedString

这是一个可以在iOS Playground中测试的小代码片段:

(λ,φ和δ只是简单的希腊字母,U + 03BB,U + 03C6和U + 03B4。)

import UIKit

var maStr = NSMutableAttributedString()
let boldFont = UIFont(name: "Times-Bold", size: 18.0)!
maStr.append(NSAttributedString(string: "λ φ", attributes: [NSFontAttributeName: boldFont]))
let italicFont = UIFont(name: "Times-Italic", size: 18.0)!
maStr.append(NSAttributedString(string: " δ", attributes: [NSFontAttributeName: italicFont]))
maStr

enter image description here

如果这不能满足您的要求,您需要更新您的问题并准确解释您的要求。

macOS(OS X)

在我的OS X El Capitan(10.11.5) - 对不起Sierra - ,我发现两种字体(在同一字体系列中)可以显示这些字符。

  

STIXGeneral-粗体

     

STIXGeneral正规

因此,在通常可以选择替代字体的文本系统中,可以显示这样的数学符号。

例如,您可以在Playground中测试macOS:

import Cocoa

var str = "Hello, playground"

let label = NSTextField(frame: CGRect(x:0, y:0, width: 320, height: 100))
label.stringValue = "  "

Xcode 8.2.1的故事板编辑器实际上显示了这些字符。