[英]Swift Number Formatting conversion from Objective-C
我對IOS編程非常陌生,因此希望Swift專家提供一些指導。 我有一個用Objective-C編寫的應用程序,正在轉換為Swift。 它使用自定義鍵盤在文本字段中輸入一個四位數的值。 每次用戶輸入數字時,數字都會除以十。 例如,用戶輸入1並顯示為0.1,用戶輸入12則顯示為1.2,用戶輸入123則顯示為12.3,依此類推。實現此目的的Objective-C代碼為:
-(IBAction)buttonPress1:(UIButton *)sender
{
if (textviewZFW.text.length <= 4) {
NSString *digit = sender.currentTitle;
textviewZFW.text =[textviewZFW.text stringByAppendingString:digit];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setGroupingSeparator:@""];
[numberFormatter setMaximumIntegerDigits:3];
[numberFormatter setMaximumFractionDigits:1];
[numberFormatter setMinimumFractionDigits:1];
textviewZFW.text = [textviewZFW.text stringByReplacingOccurrencesOfString:@"." withString:@""];
NSDecimalNumber *ZFW = [[NSDecimalNumber decimalNumberWithString:textviewZFW.text] decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithString:@"10"]];
textviewZFW.text = [numberFormatter stringFromNumber:ZFW];
}
}
這樣很好。
我正在研究所有Swift教程和Apple Guide等,但尚未達到相同的結果。 到目前為止,我只能使前幾行沒有小數點:
@IBAction func ButtonPress1(sender: AnyObject) {
if(ZFW.text.utf16Count <= 3){
var digit = sender.currentTitle?
ZFW.text = ZFW.text.stringByAppendingString(digit!)
}
}
誰能指出我正確的方向來編寫Swift代碼,以反映上述Objective-C。 謝謝
希望現在您能對快速的工作方式有所了解
SWIFT代碼:
if ((textviewZFW?.text.utf16Count) <= 3) {
var digit: NSString? = sender.currentTitle
textviewZFW?.text = textviewZFW?.text.stringByAppendingString(digit!)
var numberFormatter: NSNumberFormatter = NSNumberFormatter();
numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle;
numberFormatter.groupingSeparator = ""
numberFormatter.maximumIntegerDigits = 3
numberFormatter.maximumFractionDigits = 1
numberFormatter.minimumFractionDigits = 1
textviewZFW?.text = textviewZFW?.text.stringByReplacingOccurrencesOfString(".", withString: "", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)
var zfwDecimal: NSDecimalNumber? = NSDecimalNumber(string: textviewZFW?.text).decimalNumberByDividingBy(NSDecimalNumber(string: "10"))
textviewZFW?.text = numberFormatter.stringFromNumber(zfwDecimal!)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.