SelectBox ja - Tai-Kimura/SwiftJsonUI GitHub Wiki

🇺🇸 English | 🇯🇵 日本語

SelectBox(セレクトボックス)

class: SJUISelectBox
inherits: SJUIView

SelectBoxの属性

属性名 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: 右

SelectBoxの関数

public class func createFromJSON(attr: JSON, target: Any, views: inout [String: UIView]) -> SJUISelectBox

このメソッドは、jsonファイルから作成される際に呼び出されます。
SJUISelectBoxクラスを継承するクラスを作成する場合は、このメソッドをオーバーライドしてください。

使用例

拡張スタイル付き基本日付ピッカー(v6.1.0+)

{
  "type": "SelectBox",
  "id": "birth_date",
  "width": "matchParent",
  "height": 44,
  "selectItemType": "Date",
  "datePickerMode": "date",
  "datePickerStyle": "compact",
  "dateStringFormat": "yyyy/MM/dd",
  "prompt": "生年月日を選択してください"
}

分間隔付き時間ピッカー(v6.1.0+)

{
  "type": "SelectBox",
  "id": "appointment_time",
  "width": "matchParent",
  "height": 44,
  "selectItemType": "Time",
  "datePickerMode": "time",
  "datePickerStyle": "wheels",
  "minuteInterval": 15,
  "prompt": "予約時間を選択してください"
}

インラインスタイルの日時ピッカー(v6.1.0+)

{
  "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"
}

日付ピッカースタイルガイド(v6.1.0+)

automatic

  • 説明: 利用可能なスペースに基づいてシステムが自動的に最適なスタイルを選択
  • 適用場面: 異なる画面サイズで動作する適応性のあるレイアウト
  • 外観: iOSバージョンと利用可能スペースによって異なる

wheels

  • 説明: 伝統的なスピニングホイールピッカー(デフォルト動作)
  • 適用場面: 時間選択、馴染みのあるユーザーエクスペリエンス
  • 外観: クラシックiOSピッカーホイール

compact

  • 説明: タップ時にポップオーバーを表示するボタンスタイルピッカー
  • 適用場面: スペースに制約のあるレイアウト、モダンなiOSデザイン
  • 外観: タップで展開するコンパクトボタン

inline

  • 説明: インラインで表示されるカレンダースタイルピッカー
  • 適用場面: 十分な画面スペースのある日付選択
  • 外観: レイアウトに埋め込まれたフルカレンダービュー
  • 注意: 十分な高さが必要(推奨: 200+ポイント)

分間隔ガイドライン(v6.1.0+)

  • 有効な値: 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30
  • デフォルト: 1(毎分)
  • 一般的な使用例:
    • 5分: 一般的なスケジュール管理
    • 15分: 会議のスケジュール管理
    • 30分: 予約システム
  • 効果: 選択可能な分を指定した間隔の倍数に制限
⚠️ **GitHub.com Fallback** ⚠️