iOS

Swift4:MesaMeterアップデート

いくつか手直しをしました。

Landscapeに変更

今まで、PortrateかLandscapeかはユーザー選択にしていたのですが、Landscapeのみとし、見易さを優先することにしました。

Screenshot 2017-09-29 22.24.43

iPadはテンキー表示をしても表示が隠れることはないのですが、iPhoneは画面が小さいので隠れた場合、前回メーターが何だったかわからないと不便なので、これを横に表示するようにしました。

当然のことながら、iPhone 8 / iOS 11.0に対応しました。

つまづいたところ

  • 新しいデバイスを登録するとき、実機でアプリを確認が参考になりました。すっかり忘れていました。
  • Landscapeは、Xcode8でSizeクラスの設定方法が参考になりました。
  • キーボードの表示関係は、深く追求していませんが、使ったものは次の通りです。サンプルコードを調べたのですが、ピッタリ来るものはありませんでした。
    初回のみ
    self.xMeter.delegate = self as? UITextFieldDelegate
    self.xMeter.keyboardType = UIKeyboardType.numberPad

    入力エリア(xMeter)をタップしたとき
    @IBAction func tapMeter(_ sender : AnyObject) {
    self.xMeter.keyboardType = UIKeyboardType.numberPadself.xMeter.becomeFirstResponder()                                                  }

    入力エリア以外をタップしたとき
    @IBAction func tapScreen(sender: UITapGestureRecognizer) {
    self.view.endEditing(true)
    //xMeter.resignFirstResponder()//<–おかしくなる。
    }

  • キーボードについては、シュミレータのハードウェア設定も見た方がいいです。正確な動作確認はしていないのですが、Toggleを選択したら表示がうまくいくようになりました。
    Screenshot 2017-09-29 23.03.55

Categories: iOS, Swift, 技術