[Swift]메르카리 같은 수수료를 자동 계산하는 프로그램 구현
그래서 이번에는 그 방법을 쓰고 싶습니다.
그럼 가자!
소개
우선, storyBoard에서 이런 느낌을 준비해 주세요
본질적으로는, ①사용자가 실제로 금액을 입력하는 부분의 TextField, ②계산된 수수료를 반영하는 UILabel, ③계산된 판매이익을 반영하는 UILabel의 3가지가 존재하고 있을 뿐입니다.
글쎄, 멋지게 보이기 위해이 세 가지 textAlign을 모두 맞추는 것이 좋다고 생각합니다.
이제 코드로 이동합니다.
코드
우선은 전체상으로부터입니다.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var settingFeeTextField: UITextField! //入力する部分
@IBOutlet weak var commissionLabel: UILabel! //手数料を算出する部分
@IBOutlet weak var finalFeeLabel: UILabel! //最終的な収益を算出する部分
override func viewDidLoad() {
super.viewDidLoad()
settingFeeTextField.keyboardType = .numberPad//数字のみ入力可にする
NotificationCenter.default.addObserver(self, selector: ♯selector(textFieldDidChange(notification:)), name: UITextField.textDidChangeNotification, object: settingFeeTextField)
}
deinit {
NotificationCenter.default.removeObserver(self)
}
@objc private func textFieldDidChange(notification:NSNotification){
let textField = notification.object as! UITextField
let toIntFeeTextField = Int(textField.text!)
let ToZero = toIntFeeTextField ?? 0
let calculateCommission = ToZero / 10//10%の手数料
commissionLabel.text = String(calculateCommission)
finalFeeLabel.text = String(ToZero - calculateCommission)
}
}
그럼 간단히 해설해 갑니다.
먼저 숫자만 입력하고 싶기 때문에 키보드 유형을 숫자로만 변경합니다.
그런 다음 TextField 이벤트가 발화되었을 때 알림을 받으려면 NotificationCenter를 설치합니다. (※UITextField가 독자적으로 가지는 메소드를 사용해도 좋다고 생각합니다.)
그리고 그 메소드 안에서, 계산을 하기 위해서 String형을 Int형으로 변경합시다.
그리고 글쎄, 그 후에는 그 계산 결과를 String 형으로 재 캐스팅하고 반영한다는 느낌입니다.
이상입니다!
(※ 덧붙여서, 텍스트 필드의 값을 nil 결합으로 0을 넣어 두지 않으면, 값이 1 이하가되었을 때 에러가 나오므로 주의해 주세요.아, 그리고 수수료는 스스로 자유롭게 설정되면 좋다고 생각합니다.)
완성품이 이쪽
마지막으로
수고하셨습니다.
Reference
이 문제에 관하여([Swift]메르카리 같은 수수료를 자동 계산하는 프로그램 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shunya813/items/5eda90cc6655db4ddca1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선은 전체상으로부터입니다.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var settingFeeTextField: UITextField! //入力する部分
@IBOutlet weak var commissionLabel: UILabel! //手数料を算出する部分
@IBOutlet weak var finalFeeLabel: UILabel! //最終的な収益を算出する部分
override func viewDidLoad() {
super.viewDidLoad()
settingFeeTextField.keyboardType = .numberPad//数字のみ入力可にする
NotificationCenter.default.addObserver(self, selector: ♯selector(textFieldDidChange(notification:)), name: UITextField.textDidChangeNotification, object: settingFeeTextField)
}
deinit {
NotificationCenter.default.removeObserver(self)
}
@objc private func textFieldDidChange(notification:NSNotification){
let textField = notification.object as! UITextField
let toIntFeeTextField = Int(textField.text!)
let ToZero = toIntFeeTextField ?? 0
let calculateCommission = ToZero / 10//10%の手数料
commissionLabel.text = String(calculateCommission)
finalFeeLabel.text = String(ToZero - calculateCommission)
}
}
그럼 간단히 해설해 갑니다.
먼저 숫자만 입력하고 싶기 때문에 키보드 유형을 숫자로만 변경합니다.
그런 다음 TextField 이벤트가 발화되었을 때 알림을 받으려면 NotificationCenter를 설치합니다. (※UITextField가 독자적으로 가지는 메소드를 사용해도 좋다고 생각합니다.)
그리고 그 메소드 안에서, 계산을 하기 위해서 String형을 Int형으로 변경합시다.
그리고 글쎄, 그 후에는 그 계산 결과를 String 형으로 재 캐스팅하고 반영한다는 느낌입니다.
이상입니다!
(※ 덧붙여서, 텍스트 필드의 값을 nil 결합으로 0을 넣어 두지 않으면, 값이 1 이하가되었을 때 에러가 나오므로 주의해 주세요.아, 그리고 수수료는 스스로 자유롭게 설정되면 좋다고 생각합니다.)
완성품이 이쪽
마지막으로
수고하셨습니다.
Reference
이 문제에 관하여([Swift]메르카리 같은 수수료를 자동 계산하는 프로그램 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shunya813/items/5eda90cc6655db4ddca1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Swift]메르카리 같은 수수료를 자동 계산하는 프로그램 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shunya813/items/5eda90cc6655db4ddca1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)