やったこと
- 猫年齢<->人間年齢換算アプリを作る
- 数値キーボードにクリアボタンを表示する
- 画面タップでキーボードを非表示にする
Double<->Stringの変換が多少役に立つかと。
「詳細Objective-C iPhoneアプリ開発入門ノート」Chapter4-3の学習記録です。
コード
ViewController.swift
class ViewController: UIViewController {
// 年齢テキストボックス
@IBOutlet weak var inputAge: UITextField!
// 換算後年齢ラベル
@IBOutlet weak var resultAge: UILabel!
// 自作クラス
var mp = MyProc()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
// 換算ボタンを押す
@IBAction func convertAge(sender: AnyObject) {
var input = self.inputAge.text
var res:NSString = mp.convertAgeFromCatToHuman(input)
self.resultAge.text = res
}
// 背景をタップ
@IBAction func bkgTapped(sender: UITapGestureRecognizer) {
//キーボードを閉じる
self.view.endEditing(true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
MyProc.swift
class MyProc:NSObject {
// 初期化
override init() {
}
// 猫の年齢を人間の年齢に変換する
func convertAgeFromCatToHuman(catAge: NSString) -> String{
// Doubleに変換
var catAgeDbl = catAge.doubleValue
var hmnAge:Double = 0
if (catAgeDbl <= 1) {
hmnAge = catAgeDbl + 20
} else if (catAgeDbl <= 5) {
hmnAge = catAgeDbl * 6 + 15
} else if (catAgeDbl <= 10) {
hmnAge = catAgeDbl * 5 + 20
} else if (catAgeDbl <= 15) {
hmnAge = catAgeDbl * 4 + 30
} else {
hmnAge = catAgeDbl * 3 + 45
}
var hmnAgeStr = NSString(format: "%.1f", hmnAge)
return hmnAgeStr
}
}
ソースアップ
わからない
-
コンソールにエラーが出る
2014-10-24 22:49:04.462 CatAge[2506:72454] Can't find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 1425143906_Portrait_iPhone-Simple-Pad_Default -
本にはテキストボックスの入力制御をdelegateでやってたんだけど、delegateメソッドの書き方がわからない。ので今回はやめた。