SelectBox ja - Tai-Kimura/SwiftJsonUI GitHub Wiki
class: SJUISelectBox
inherits: SJUIView
| 属性名 | UIKit | SwiftUI | Compose | XML | jsonでの型 | 詳細 | 備考 |
|---|---|---|---|---|---|---|---|
| caretAttributes | - | JSON | キャレットの属性。 利用可能な属性はこちら |
||||
| dividerAttributes | - | JSON | キャレットとラベル間の仕切りの属性。 利用可能な属性はこちら |
||||
| labelAttributes | - | JSON | ラベルの属性。 利用可能な属性はこちら |
||||
| selectItemType | - | string | selectBoxのアイテムタイプ。 利用可能なタイプ:Normal、Date。 |
||||
| datePickerMode | - | string | selectBoxのUIDatePickerMode。 利用可能なタイプ:date、time、datetime、countDown。 |
||||
| canBack | - | boolean | この属性がtrueの場合、ピッカーに戻るボタンが表示されます。 | ||||
| prompt | - | string | selectBoxのプロンプト。 | ||||
| includePromptWhenDataBinding | - | boolean | この属性は、データバインディング時にプロンプトがアイテムとしてカウントされるかどうかを示します。 | ||||
| dateStringFormat | - | string | 日付の文字列フォーマット。 この属性は、日付が選択されたときのラベルのテキストに適用されます。 |
||||
| selectedDate | - | string | デフォルトの日付値。 dateStringFormatで文字列から初期化された日付がselectBoxに設定されます。 |
||||
| maximumDate | - | string | 最大日付値。 dateStringFormatで文字列から初期化された日付がselectBoxに設定されます。 |
||||
| minimumDate | - | string | 最小日付値。 dateStringFormatで文字列から初期化された日付がselectBoxに設定されます。 |
||||
| selectedIndex | - | integer | デフォルトのアイテムインデックス。 | ||||
| datePickerStyle | - | string | 日付ピッカーのスタイル(iOS 14.0+)。 利用可能なタイプ:automatic、wheels、compact、inline。 |
v6.1.0+ | |||
| minuteInterval | - | integer | 時間ピッカーの分間隔(1-30)。 | v6.1.0+ |
| 属性名 | 制約情報での データ型 |
jsonでの 型 |
詳細 | 備考 |
|---|---|---|---|---|
| width | - | float | キャレットの幅。 | |
| src | - | string | キャレットの画像名。 | |
| background | - | string | キャレットの背景色。 |
| 属性名 | 制約情報での データ型 |
jsonでの 型 |
詳細 | 備考 |
|---|---|---|---|---|
| width | - | float | 仕切りの幅。 | |
| background | - | string | 仕切りの背景色。 |
| 属性名 | 制約情報での データ型 |
jsonでの 型 |
詳細 | 備考 |
|---|---|---|---|---|
| textAlign | - | string | paragraphStyle.alignment。リストは以下のとおり Left: NSTextAlignment.left Right: NSTextAlignment.right Center: NSTextAlignment.center |
|
| font | - | string | ラベルのフォント名。 | |
| fontSize | - | float | ラベルのフォントサイズ。 | |
| fontColor | - | string | NSAttributedStringKey.foregroundColor。 | |
| text | - | string | NSLocalizedString(text, comment:"")がattributedTextに設定されます。 | |
| hilightAttributes | - | JSON | テキストのハイライト属性。この属性は、applyAttributedTextが呼び出され、選択されているときに適用されます。利用可能な属性は font、fontSize、fontColor | |
| highlightColor | - | string | 選択状態のフォント色。この属性は、highlightAttributesが定義されている場合は無視されます。 | |
| hintAttributes | - | JSON | テキストのヒント属性。この属性は、ヒントが表示されているときに適用されます。利用可能な属性は font、fontSize、fontColor | |
| hintColor | - | string | ヒントのフォント色。この属性は、highlightAttributesが定義されている場合は無視されます。 | |
| lineHeightMultiple | - | float | paragraphStyle.lineHeightMultiple。 | |
| edgeInset | - | string|float array | floatの配列または「|」で区切られた文字列がlabel.paddingに設定されます。 配列サイズが1の場合、すべての位置に同じ値が設定されます。 配列サイズが2の場合、最初の値が上下に、2番目の値が左右に設定されます。 配列サイズが3の場合、インデックスと位置は以下のとおりです。 0: 上 1: 左右 2: 下 配列サイズが4の場合、インデックスと位置は以下のとおりです。 0: 上 1: 左 2: 下 3: 右 |
public class func createFromJSON(attr: JSON, target: Any, views: inout [String: UIView]) -> SJUISelectBoxこのメソッドは、jsonファイルから作成される際に呼び出されます。
SJUISelectBoxクラスを継承するクラスを作成する場合は、このメソッドをオーバーライドしてください。
{
"type": "SelectBox",
"id": "birth_date",
"width": "matchParent",
"height": 44,
"selectItemType": "Date",
"datePickerMode": "date",
"datePickerStyle": "compact",
"dateStringFormat": "yyyy/MM/dd",
"prompt": "生年月日を選択してください"
}{
"type": "SelectBox",
"id": "appointment_time",
"width": "matchParent",
"height": 44,
"selectItemType": "Time",
"datePickerMode": "time",
"datePickerStyle": "wheels",
"minuteInterval": 15,
"prompt": "予約時間を選択してください"
}{
"type": "SelectBox",
"id": "event_datetime",
"width": "matchParent",
"height": 200,
"selectItemType": "Date",
"datePickerMode": "datetime",
"datePickerStyle": "inline",
"minuteInterval": 30,
"dateStringFormat": "yyyy/MM/dd HH:mm",
"minimumDate": "2024/01/01 00:00",
"maximumDate": "2025/12/31 23:59"
}- 説明: 利用可能なスペースに基づいてシステムが自動的に最適なスタイルを選択
- 適用場面: 異なる画面サイズで動作する適応性のあるレイアウト
- 外観: iOSバージョンと利用可能スペースによって異なる
- 説明: 伝統的なスピニングホイールピッカー(デフォルト動作)
- 適用場面: 時間選択、馴染みのあるユーザーエクスペリエンス
- 外観: クラシックiOSピッカーホイール
- 説明: タップ時にポップオーバーを表示するボタンスタイルピッカー
- 適用場面: スペースに制約のあるレイアウト、モダンなiOSデザイン
- 外観: タップで展開するコンパクトボタン
- 説明: インラインで表示されるカレンダースタイルピッカー
- 適用場面: 十分な画面スペースのある日付選択
- 外観: レイアウトに埋め込まれたフルカレンダービュー
- 注意: 十分な高さが必要(推奨: 200+ポイント)
- 有効な値: 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30
- デフォルト: 1(毎分)
-
一般的な使用例:
- 5分: 一般的なスケジュール管理
- 15分: 会議のスケジュール管理
- 30分: 予約システム
- 効果: 選択可能な分を指定した間隔の倍数に制限