ios - 获取特定的小数位

标签 ios swift uilabel

我有一个点钞机,它会随着时间的推移而增加,我想制作动画,我正在使用下面的扩展来运行动画,但问题是当我只希望改变的数字是动画。

我想我应该将数字分开并单独为每个单独的数字制作动画,问题是我不知道如何分解数字并获得特定数字。

有没有一种方法可以分解数字并获取单个数字,或者有更好的方法在单个数字上运行动画?

 func pushTransition(duration:CFTimeInterval) {
    let animation:CATransition = CATransition()
    animation.timingFunction = CAMediaTimingFunction(name:
        kCAMediaTimingFunctionEaseInEaseOut)
    animation.type = kCATransitionPush
    animation.subtype = kCATransitionFromTop
    animation.duration = duration
    self.layer.add(animation, forKey: kCATransitionPush)
}



if let aLabel = self.money{
        aLabel.pushTransition(duration: 0.2)
        aLabel.text = "$\(strRoundDollars)"
        money.sizeToFit()
        }

最佳答案

首先,您希望使用 NumberFormatter 而不是简单的字符串插值,以确保您的区域设置/货币始终具有正确的小数位数和货币符号等。然后您需要做的就是将字符串的 .characters 属性映射回字符串数组:

let dollars = 123.4
let n = NumberFormatter()
n.numberStyle = .currency
n.locale = Locale.autoupdatingCurrent // or whatever locale you want
if let text = n.string(from: NSNumber(value: dollars)) {
    text // "$123.40"
    let charactersAsStrings = text.characters.map({String($0)})
    charactersAsStrings // ["$", "1", "2", "3", ".", "4", "0"]
}

非常感谢@Sulthan 指出我使用 String(format: "$%0.2f", dollars) 的第一个答案是劣质 :)

关于ios - 获取特定的小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248677/

相关文章:

swift - swift 中的转换运算符

ios - 本地通知并对存档进行更改

ios - 垂直对齐 UILabel

iOS:带有 "Show more"按钮的 UILabel

ios - 在 UILabel 中,是否可以强制一行不在斜线处断开?

ios - 函数运行时显示 UIView/UIImage/UITextView

ios - 保存到相机胶卷后从路径加载特定图像

ios - MonoTouch 解决方案中的多个 Info.plist 文件

ios - 如何创建单面箭头标签

ios - 在谷歌地图 ios 中只获取区域名称?