【发布时间】:2021-11-11 01:20:14
【问题描述】:
我正在制作一个小应用程序来帮助孩子们为孩子们学习数学。
但是,我不知道如何在 SwiftUI 中编写分数?
我想要这样的东西:1⁄2
感谢您的帮助:)
【问题讨论】:
-
请多解释
-
一个很好的问题,但不幸的是没有一个很好的答案
我正在制作一个小应用程序来帮助孩子们为孩子们学习数学。
但是,我不知道如何在 SwiftUI 中编写分数?
我想要这样的东西:1⁄2
感谢您的帮助:)
【问题讨论】:
希望以下内容对您有所帮助。当然,您可以根据需要调整参数。
演示:
方法代码:
import SwiftUI
struct FractionView: View {
var numerator: String
var denominator: String
var body: some View {
HStack {
Text("\(numerator)")
.offset(x: 4, y: 0)
.alignmentGuide(VerticalAlignment.center,
computeValue: { d in d[.bottom] })
Text("∕").font(.system(size: 32))
Text("\(denominator)")
.offset(x: -4, y: 0)
.alignmentGuide(VerticalAlignment.center,
computeValue: { d in d[.top] })
}
}
}
struct TestFraction: View {
var body: some View {
VStack(spacing: 8) {
FractionView(numerator: "1", denominator: "2")
FractionView(numerator: "5", denominator: "7")
FractionView(numerator: "11", denominator: "19")
FractionView(numerator: "31", denominator: "9")
}
}
}
struct TestFraction_Previews: PreviewProvider {
static var previews: some View {
TestFraction()
}
}
【讨论】:
我最近遇到了一种可能比当前提出的解决方案更灵活的方法(不需要针对不同的字体大小或样式进行调整)。
将上标和下标数字的 Unicode 符号与 Unicode 小数斜杠结合使用。一个非常简单的解决方案可能是:
Text("\u{2077}\u{2044}\u{2081}\u{2081}") // --> returns ⁷⁄₁₁
有一篇有趣的文章进一步讨论了这种方法:https://coderexmachina.medium.com/displaying-mathematical-fractions-in-swiftui-6a4dd625d842
【讨论】: