Swiftで遊ぼう! - 970 - いろいろ考える
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
私もいろいろ考えているつもりですが、これで生計を立てているプロのプログラマーの人は本当にいろいろ考えているんだなって思います。考えなきゃいけないポイントが本当に多いですよね。
自作アプリを作ろうとしていますが、コーディングを考える以前に、「入力スタイルをどうしたらいいんだろう?」という疑問が大きなウエイトを占めています。
iPadというiPhoneより少し大きな画面で入力をする場合、iPhoneと同じ入力スタイルを用意するのに違和感があります。iPhoneなら画面の下からニョロニョロとせり出してくるキーボードでも違和感がありませんが、画面の広いiPadで決して入力しやすいと思いません。そこでPopoverによる入力を考えてみたんですがどうでしょうね。
入力のすべての項目でPopoverを使うのには抵抗があります。じゃあどの入力ならいいのか?いろいろ考えながらテストしたいと思っています。
これから患者情報を登録するユーザーインターフェイスを考えていきたいと考えています。意見があれば教えてください。
では。
Swiftで遊ぼう! - 969 - 年齢も自動計算
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
Popoverで誕生日の日付を選択したら自動的に年齢を計算して年齢フィールドに表示するようにしました。
こういう簡単な機能でも拡張するのに時間がかかりますね。
まだまだ拡張性を考えながらコーディングができていないからです。可読性の高いコーディングをするための勉強もどうしたらいいんでしょうね。
自分で書いたコードが既に複雑になり、ブログで紹介できるレベルを超えてしまいました。あり得ないですね。
困ったものです...
上手く動いているように見えます。しかし、まだ入力の制限がかかっていません。誕生日を現時点から未来に設定できるからです。こういう制限も少し考えないと今の私にはできません(T_T)
何事もゆっくりと。
Swiftで遊ぼう! - 968 - DateFormatterを利用する
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
新しいAPIが公開されると、古いAPIを無視しようとする悪い癖があります。ISO8601DateFormatterクラスがiOS10から利用できるようになったという話を昨日しました。
もう古いDateFormatterは必要無いって思い込みましたが、少し調べているとISO8601DateFormatterがDateFormatterの機能をすべて内包している訳ではありません。
ということで「年月日」表示をするために「DateFormatter」を利用しました。
すると、昨日悩んでいたことがあっという間に解決!
ちょっとずつ進歩しています。
Swiftで遊ぼう! - 967 - Popoverの微調整は続く
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
少しずつ自分の望む機能は実装できています。TextFieldをタップしてPopoverが表示され、日付を選択するとその日付がTextFieldに表示されるところまで実装しました。
TextFieldに日付が既に表示されていると、Popoverにその日付が表示されるようにしました。
本当に少しずつです。
Dateクラスの取り扱いは少し複雑という話は以前しました。Dateクラスで日付を扱うのですが、画面に表示するときはStringクラスを使用します。このDateクラスとStringクラスの相互のやりとりをDateFormatterクラスが請け負っているんです。
じゃあ素直にDateFormatterクラスを使用しようと思ったら...
iOS10からDateFormatterクラスが進化していたことが分かりました(^_^;)
ISO8601DateFormatter
まだまだ勉強が足りないのですが以下に簡単な説明があったので助かりました。
[iOS 10] ISO8601DateFormatter について | Developers.IO
それでも行き詰まっています。上のフィールドで表示されている「1968-11-15」を「1968年11月15日」に変更できないんです。計算型プロパティで実装しなければならないのか、標準のメソッドかプロパティに存在するのかまだ分かっていません。ご存じの方がいらっしゃれば教えて下さい。
では。
Swiftで遊ぼう! - 966 - Popoverの微調整
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
入力のためのユーザーインターフェースを考えることは重要だと思います。
しかしながら、細かいインターフェイスを考えながら全体を作り上げていく作成法は望ましくないでしょう。作品をなんとか作り上げたいプログラミングど素人の親父の足掻きだと思ってください。3ヶ月でアプリができるこの世の中で、3年もかかっています(^_^;)
今日は少しPopoverの微調整をしました。TextFieldをタップしてPopoverを出現させ、日付を選択するとTextFieldに日付を表示させるところまでできました。ちゃんとデリゲーションのやり方が理解できているってことです。また、セグエでPopoverが表示されるデフォルトの位置が微妙に気に入らなかったので、テキストフィールドのホリゾンタルの中央に動かしました。
まだ不十分です。ググりながら分からないところを調べながら進んでいます。
では。
Swiftで遊ぼう! - 965 - Popoverのメモ1
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
Popoverをコードで利用するときの備忘録
// DatePopoverControllerはViewControllerのサブクラス let dateController = DatePopoverController() dateController.modalPresentationStyle = .popover dateController.preferredContentSize = CGSize(width: 300, height: 300) dateController.popoverPresentationController?.sourceView = view dateController.popoverPresentationController?.sourceRect = sender.frame dateController.popoverPresentationController?. permittedArrowDirections = .any if let popoverController = dateController. popoverPresentationController { popoverController.delegate = self popoverController.backgroundColor = UIColor.blue } present(dateController, animated: true, completion: nil)
これは@IBActionに設定してコードでPopoverを作るケース。
Swiftで遊ぼう! - 964 - Popoverを極める!
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
自作アプリを作っています。今まで勉強した知識を基にして組み上げているって感じです。
日付を入力するインターフェイスに「Popove」を採用してみました。コードで実装とストーリーボードで実装する方法を復習してポップオーバーの利用は完璧です。
日付の入力は「DatePicker」が望ましいのかなってインターフェイスも考えています。
基本的にiPadアプリを作っているので、この方法が最適じゃないかと思います。西暦と和暦の切り替えもできるようにしました。
まあ、まだまだ調べながら実装しているって感じです。