行业

汽车

航空

金融

游戏

医疗科技

物联网

数字产品

使用场景

面向企业

面向个人

面向团队

用于教育

主要特点

硬件与系统集成

公测版

ProtoPie MCP

多设备原型设计

交互逻辑

开发交接

ProtoPie AI

用户测试

插件

Figma

Sketch

Adobe XD

洞见与灵感

博客

白皮书

客户成功案例

活动与网络研讨会

ProtoPie 画廊

产品学习与支持

ProtoPie 学堂

下载 ProtoPie

产品文档

社区

行业

汽车

航空

金融

游戏

医疗科技

物联网

数字产品

使用场景

面向企业

面向个人

面向团队

用于教育

主要特点

硬件与系统集成

公测版

ProtoPie MCP

多设备原型设计

交互逻辑

开发交接

ProtoPie AI

用户测试

插件

Figma

Sketch

Adobe XD

洞见与灵感

博客

白皮书

客户成功案例

活动与网络研讨会

ProtoPie 画廊

产品学习与支持

ProtoPie 学堂

下载 ProtoPie

产品文档

社区

教程

10

阅读时间

如何在 ProtoPie 的汇款应用中格式化货币

了解如何使用“format()”函数将数字显示为美元和美分、英镑和便士、欧元等。

杰夫·克拉克, 用户体验设计师与 ProtoPie 培训师

快速概述

在转账应用设计中,你经常会看到一种交互:用户输入一些数字——例如,他们想转给朋友的金额——然后界面会将该金额按货币格式回显,例如 $45.33。

在本课中,你将学习如何使用 ProtoPie 的一个内置函数,将数字输入以常见货币格式呈现。


Transfer Screen Prototype Made With ProtoPie

起始 Pie 文件完整 Pie 文件

你将学到什么

在本课中你将学习:

  • 如何使用 ProtoPie 内置的 format() 函数

  • 如何在公式中将多段文本组合在一起

  • 如何自动显示设备原生键盘

  • 如何显示数字键盘而不是常规字母键盘。

完成时间:≤10 分钟

开始之前

打开起始 Pie,其中包含一个模拟支付应用的单个界面。我们将使用用户输入要发送给联系人的金额的那个界面。我们只希望用户输入数字。例如,如果用户输入 5,我们的交互应将其解释为 5 美分,并显示为 $0.05。如果用户输入 50,我们将显示 $0.50。如果用户输入 505,我们将显示 $5.05,以此类推。最后,我们希望在用户输入时实时更新显示。

视频

分步操作

第 1 部分:设置输入

我们需要一种方式来捕获用户输入。

  • 在画布中添加一个输入图层。暂时将它放在“Transfer amount”图层和“Continue”按钮之间即可。

  • 保留图层默认名称 Input 1

  • 我们稍后会将其隐藏,所以先不用担心尺寸、字体、颜色等。


Add an Input layer to your canvas

如果你现在预览,会看到点击输入框时弹出的是普通字母键盘。


the normal alphabetic keyboard

我们来把它改成显示数字键盘。

  • 在画布中选中输入框后,滚动右侧属性面板到底部,找到“Keyboard Options”部分。

  • 在“Type”下拉菜单中,你可以选择字段聚焦时出现的键盘。选择“Number”。


Change the keyboard option to number

现在预览时,你会看到点击输入框会弹出数字键盘。


numeric keyboard in the preview window

我们希望场景开始时键盘自动出现。

  • 添加一个 Start 触发器。

  • 当 Input 图层获得焦点时键盘会出现。在 Start 触发器下,为 Input 1 图层添加一个 Focus 响应,并确保选择“Focus In”。


Add a Focus trigger to the input layer

再次预览。场景开始时 Input 1 图层应处于聚焦状态,从而触发键盘出现。不过,如果你点击 Input 图层外部,它会失去焦点,键盘会消失。我们希望键盘始终保持在屏幕上,因此需要进一步配置,确保 Input 图层不会意外失焦。

再次滚动到 Input 的属性底部,找到“Focus Out Options

  • 取消勾选“Tap Return Key

  • 取消勾选“Tap outside of Input Layer


Change the focus out options

再次预览。现在你会看到无论点击哪里,Input 图层都会保持聚焦,键盘也会始终显示在屏幕上。

第 2 部分:将输入格式化后显示

我们希望在用户输入时实时更新显示。

  • 为 Input 图层添加一个 Detect 触发器,并将其设置为检测 Input 1 的 Text 属性变化。


Add a Detect Trigger to the Input layer

💡 复习:Detect 触发器会在所选对象属性或所选变量值每次发生变化时都会触发。

现在来显示输入内容!

  • Detect 触发器下添加一个 Text 响应。

  • 选择 Transfer amount 图层。

  • 在 Content 下选择“Formula


Add a Text Response under the Detect Trigger

继续之前,我们先看看 ProtoPie 的 format() 函数,它允许你按特定方式展示数字信息。例如可添加千位分隔符,并将数字显示为指定小数位。它接收两个参数:

  • value - 你希望格式化的原始数字——在本例中是用户输入的内容

  • format - 表示你希望如何格式化该数字的模式。

它看起来是这样:

format(value:NUMBER,format:TEXT)

format 参数最多由四种关键字符组成:

  • # 用于表示格式中的整数部分

  • 0 用于表示格式中的小数部分

  • 小数字符(例如北美使用 .

  • 分隔符字符(例如用 , 作为千位分隔符)

我们来看一些示例:

  • format(1234.567, "#") 将输出 1235。格式中未指定小数位,因此只得到整数。注意输出是四舍五入后的结果。

  • format(1234.567, "#,###") 将输出 1,235。这指定了分隔符字符,连续三个 # 表示该分隔符将作为千位分隔符使用。

  • format(1234.567, "#,##") 将输出 12,35。与上面类似,不同之处在于分隔符后只有连续 2 个 #,因此它作为百位分隔符。

  • format(1234.567, "#,###.00") 将输出 1,234.57。这会将 . 设为小数字符并保留两位小数。注意输出会四舍五入到最接近的百分位。

  • format(1234.567, "#.###,00") 输出 1.234,57。这与上面的格式相同,但 . 用作分隔符,, 用作小数字符。这是在欧洲及世界其他地区常见的数字格式。

💡 最后一个示例展示了 format() 函数如何用于针对特定受众进行本地化。

在我们的案例中,我们将使用北美“美元+美分”格式,如下所示:

  • $1,234.57

上面的第四个示例给出了该格式中的数字部分。我们需要在公式中单独拼接 $ 字符。来看实际效果!

  • 在刚创建的 Text 响应中,使用以下公式:

  • "$" + format(Input 1.text, "#,###.00")


Use formula in the Text Response

💡 这里发生了什么:

每当你处理未知——或动态——信息时,都需要使用公式来用动态信息“填空”。在我们的例子中,我们不知道用户会输入什么。因此,不像示例里那样使用明确数字,我们将 Input 1 图层的 text 属性作为 format 函数的第一个参数传入。ProtoPie 会在执行公式时将其替换为实际输入内容。

另外请注意,我们把 $ 字符添加到了输出开头。我们用 + 字符把两段文本——美元符号和格式化后的数字——连接在一起。如果你想使用其他货币符号,例如 £,将公式中的 $ 替换为所需符号即可。

来预览一下!我们几乎达到了想要的效果,但注意无论输入什么,你得到的都只是整美元金额,小数点右侧没有美分。


Check in the preview window

这是因为我们传入的输入始终是整数。我们希望 ProtoPie 将上述输入解释为 123.45,而不是 12345。因此需要在 format 处理前,用一些基础数学把输入除以 100。

按如下方式修改公式:

  • "$" + format(``Input 1``.text / 100, "#,###.00")


Modify the formula

💡 由于标准键盘上没有 ÷ 键,程序员很早就约定在计算中使用 / 字符表示除法。同样,* 用于乘法。

再预览一次。现在我们的格式化应当已经完全正常工作了!


Check in the preview window

最后做一点收尾:把 Input 输入框隐藏起来。你可以有几种做法。可以将图层不透明度设为 0——这样完全可行——但在这种场景下,我更倾向于保持图层可见但移到屏幕外。这样可提醒我或未来需要编辑这个 Pie 的其他人:这个交互包含一个隐藏的输入图层。


Move the input layer outside of the screen


Preview the final effect

数字格式化……像 Pie 一样简单!

在本课中,你学习了如何使用 ProtoPie 灵活的 format() 函数,将数字输入正确显示为货币金额。你还学习了如何使用设备原生键盘,在隐藏字段中捕获用户输入。

想了解更多?

[这有帮助吗?请告诉我们!]