【问题标题】:How to write a fraction in SwiftUI如何在 SwiftUI 中编写分数
【发布时间】:2021-11-11 01:20:14
【问题描述】:

我正在制作一个小应用程序来帮助孩子们为孩子们学习数学。

但是,我不知道如何在 SwiftUI 中编写分数?

我想要这样的东西:12

感谢您的帮助:)

【问题讨论】:

  • 请多解释
  • 一个很好的问题,但不幸的是没有一个很好的答案

标签: swift xcode swiftui


【解决方案1】:

希望以下内容对您有所帮助。当然,您可以根据需要调整参数。

演示:

方法代码:

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()
    }
}

【讨论】:

    【解决方案2】:

    我最近遇到了一种可能比当前提出的解决方案更灵活的方法(不需要针对不同的字体大小或样式进行调整)。

    将上标和下标数字的 Unicode 符号与 Unicode 小数斜杠结合使用。一个非常简单的解决方案可能是:

    Text("\u{2077}\u{2044}\u{2081}\u{2081}") // --> returns ⁷⁄₁₁
    

    有一篇有趣的文章进一步讨论了这种方法:https://coderexmachina.medium.com/displaying-mathematical-fractions-in-swiftui-6a4dd625d842

    【讨论】:

      猜你喜欢
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 2011-11-23
      • 1970-01-01
      相关资源
      最近更新 更多