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

SwiftUI技术问题:如何隐藏Measurement的单位显示

在SwiftUI中处理Measurement显示的两种方案

方案1:完全隐藏单位

如果只需要显示数值部分,可以直接提取Measurement转换后的数值,用数字格式化样式单独处理:

struct MeasurementStyle: View {
    var body: some View {
        let speed = Measurement(value: 50, unit: UnitSpeed.kilometersPerHour)
        // 先将单位转换为目标单位,再提取数值
        let convertedValue = speed.converted(to: .milesPerHour).value
        // 格式化数值,这里设置小数位数为0
        Text("\(convertedValue, format: .number.precision(.fractionLength(0)))")
    }
}

这段代码会输出31,完全不带单位。

方案2:单位使用不同字号显示

要让数值和单位字号不同,可以把两者拆分成两个Text组件,通过HStack组合并分别设置字体:

struct MeasurementStyle: View {
    var body: some View {
        let speed = Measurement(value: 50, unit: UnitSpeed.kilometersPerHour)
        let convertedSpeed = speed.converted(to: .milesPerHour)
        
        // 格式化数值部分
        let valueText = "\(convertedSpeed.value, format: .number.precision(.fractionLength(0)))"
        // 获取单位的符号
        let unitText = convertedSpeed.unit.symbol
        
        HStack(spacing: 2) {
            Text(valueText)
                .font(.title) // 数值用大字号
            Text(unitText)
                .font(.caption) // 单位用小字号
        }
    }
}

这样会显示大号的31和小号的mph,视觉上区分开。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:25:20