我将以下代码添加到我的In App Purchase ViewController中,但我想显示价格以及我已添加的文本
我调用价格的代码是:
_priceFormatter = [[NSNumberFormatter alloc] init];
[_priceFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[_priceFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[_priceFormatter setLocale:product.priceLocale];
我想在按钮上的“升级为”文本后调用该字符串中的价格
[buyButton setTitle:@"Upgrade for" forState:UIControlStateNormal];
我该怎么做?
答案 0 :(得分:1)
也许我在这里遗漏了一些东西(没有经过测试),但是有什么理由不适用吗?
NSString *buttonTitleString= [NSString stringWithFormat:@"Upgrade for %@", priceString];
[buyButton setTitle:buttonTitleString forState:UIControlStateNormal];
或者,在一行中完成
[buyButton setTitle:[NSString stringWithFormat:@"Upgrade for %@", priceString] forState:UIControlStateNormal];
其中priceString是价格的字符串,可能使用您在问题中描述的格式化程序。
答案 1 :(得分:0)
NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setLocale:product.priceLocale];
NSString* titleWithPriceAndCurrencySign = [formatter stringFromNumber:product.price];
[buyButton setTitle:[NSString stringWithFormat:@"Upgrade for %@", titleWithPriceAndCurrencySign] forState:UIControlStateNormal];
有时您可能希望为某些区域设置自定义标准价格表示。例如,俄语区域设置价格带有冗余零 - 33,00 RUB
。我想要一个简短的符号 - 33 r.
。所以我添加以下代码:
if ([product.priceLocale.localeIdentifier hasSuffix:@"currency=RUB"])
{
[formatter setMaximumFractionDigits:0];
[formatter setCurrencySymbol:@"r."];
}