月別アーカイブ: 2019年4月

【Swift5】localeの泥沼【ロケール】

時計や日付関係をイジっててLocaleがよくわからんかった。

言語設定?地域設定(書式設定?)?そのへんがごちゃごちゃです。
それぞれお互いに影響しているようで、地域設定が同じでも言語設定が変わると表記順が変わったり、
言語設定が同じでも地域設定で表記が変わったりします。
よーわからん。

とりあえず参考サイト
iOS11で変わったロケール – Toyship.org
iOS9から変わったNSLocale.preferredLanguagesの対応を考える – Qiita

重要だと思ったのは、本体の言語設定と地域設定以外に、「アプリ側の多言語対応」(Localized)も関係しているようです。
ややこしい。

以下のコードでいろいろ呼び出せるようです。
新規プロジェクトで試してみました。

デバッグエリアでは

といった感じです。
本体の言語設定だけ取り出すんはどしたらええんや、
あと、間に入るのはハイフンなのかアンダースコアなのか。。。

おまけ。
いろいろといじってるとコンナン出てきた。

これを動かすとデバッグエリアでは

こんな感じです。
1つ目はよく使われる組み合わせかな?
次の2つは言語設定と地域設定それぞれだろうね。
下の2つ通貨コードっぽいですね。
何かの参考になれば。

もひとつオマケの参考サイト
ロケールのリージョンコード | Second Flush

【Swift5】UIPickerViewで2列のピッカーを作る。

UIPickerViewで2列のを作りたかったのですがやり方が分からず少し悩みました。

UIPickerViewの参考サイト
【swift】UIPickerViewを作ってみる(ドラムロール)|株式会社イーガオ
[iPhone] UIPickerView の基本的な設定

特に指定せずとも、一列目がcomponentが0で、二列目が1で良いようです。

簡単にラベル2つとUIPickerViewを配置します。
【Swift5】UIPickerViewで2列のピッカーを作る。

Classに UIPickerViewDelegate, UIPickerViewDataSource を追加して、
それぞれ
pickerView.delegate = self
pickerView.dataSource = self
でつなぎます。
あとは列数は2,行数と、タイトルと、選択時の動作はswitchのcomponentで分岐します。
以下コード。

switch文のdefaultは適当です。
動かすと味気ない画面ですがちゃんと動きます。
【Swift5】UIPickerViewで2列のピッカーを作る。

二列ではなく、画面に複数のUIPickerViewを使いたいときはtagを使うと良いようです。