Attributes ja - Tai-Kimura/SwiftJsonUI GitHub Wiki
SwiftJsonUIのすべてのビュータイプで利用可能な属性です。
- ✅ UIKit: すべての属性をサポート
- ✅ SwiftUI: ほとんどの属性をサポート(個別の注記を参照)
注意: 各属性のUIKit/SwiftUIサポート状況については、英語版を参照してください。
| 属性名 | UIKit | SwiftUI | Compose | XML | jsonでの型 | 詳細 | 備考 |
|---|---|---|---|---|---|---|---|
| id | ✅ | ✅ | ✅ | ✅ | string | ビューのID。 'include'ファイルや'style'ファイルを含む、ビューファイル内でユニークである必要があります。 バインディングで定義されたプロパティ名(またはそのsnake_case)と同じである必要があります。 |
|
| type | ✅ | ✅ | ✅ | ❌ | string | 作成したいビュータイプの名前。SJUIViewCreatorを拡張することで独自のカスタムタイプを定義できます。 事前定義されたタイプはこちらにリストされています |
|
| include | ✅ | ✅ | ❌ | ❌ | string | インクルードしたいファイルのファイル名。 | |
| style | ✅ | ✅ | ❌ | ❌ | string | スタイルとしてインクルードしたいファイルのファイル名。 | |
| propertyName | ✅ | ✅ | ❌ | ❌ | string | バインディング用のキー。'id'属性とは異なる名前でプロパティを命名したい場合に使用します。 | |
| binding | ✅ | ✅ | ❌ | ❌ | string|dictionary | データバインディング用のキー。'teacher.student.name'のように'.'でプロパティ名をチェーンできます。複数のバインディング用に辞書形式でも指定できます。 | |
| tag | ✅ | ✅ | ✅ | ❌ | integer | view.tag。 | |
| visibility | ✅ | ✅ | ✅ | ✅ | string | この属性でビューの可視性を設定できます。 この属性には3つのタイプがあります:「visible」、「invisible」、「gone」。 デフォルトは「visible」です。 各可視性はAndroidの可視性と同様に動作します。 |
|
| shadow | ✅ | ✅ | ❌ | ✅ | string|dictionary | この属性でview.layerにシャドウを追加できます。文字列の場合:「color|offsetX|offsetY|opacity|radius」。辞書の場合、利用可能なキーは: color: shadowColor (16進文字列) offsetX: shadowOffset.x (float) offsetY: shadowOffset.y (float) opacity: shadowOpacity (float) radius: shadowRadius (float) |
|
| background | ✅ | ✅ | ✅ | ✅ | string | view.backgroundColor。 デフォルトでは16進文字列(例:#000000)で色を適用できます。SJUIViewCreatorの'findColorFunc'変数を設定することで独自のカラー関数を定義することもできます。この関数はすべてのカラー型属性に対して呼び出されます。 |
|
| tapBackground | ✅ | ✅ | ❌ | ❌ | string | ビューがタップされたときにbackgroundColorがこの色に変更されます。 | |
| userInteractionEnabled | ✅ | ✅ | ✅ | ✅ | boolean | view.isUserInteractionEnabled。 | |
| cornerRadius | ✅ | ✅ | ❌ | ✅ | float | view.layer.cornerRadius。 | |
| borderColor | ✅ | ✅ | ❌ | ✅ | string | view.layer.borderColor。 | |
| borderWidth | ✅ | ✅ | ❌ | ✅ | float | view.layer.borderWidth。 | |
| clipToBounds | ✅ | ✅ | ✅ | ✅ | boolean | view.clipsToBounds。 | |
| hidden | ✅ | ✅ | ✅ | ✅ | boolean | view.isHidden。 | |
| alpha | ✅ | ✅ | ✅ | ✅ | float | view.alpha。 | |
| rect | ✅ | ❌ | ❌ | ❌ | float array | この属性でview.frameを定義できます。この属性が定義されている場合、オートレイアウトは無効になります。インデックスとキーは: 0: frame.x 1: frame.y 2: frame.width 3: frame.height |
|
| indexBelow | ✅ | ❌ | ❌ | ❌ | string | 指定されたIDのビューの直下にビューが挿入されます。この属性は、orientationを持つコンテナ内のビューには使用しないでください。 | |
| indexAbove | ✅ | ❌ | ❌ | ❌ | string | 指定されたIDのビューの直上にビューが挿入されます。この属性は、orientationを持つコンテナ内のビューには使用しないでください。 | |
| paddings | ✅ | ✅ | ❌ | ✅ | float array | パディング値を設定するfloat配列。 この属性で設定された値は、特定のパディング属性(例:paddingTop)によって上書きされます。 配列サイズが1の場合、同じ値がすべての位置に適用されます。 配列サイズが2の場合、最初の値が上下に、2番目の値が左右に設定されます。 配列サイズが3の場合、インデックスと位置は: 0: 上 1: 左右 2: 下 配列サイズが4の場合、インデックスと位置は: 0: 上 1: 左 2: 下 3: 右 |
|
| paddingLeft | ✅ | ✅ | ❌ | ✅ | float | このビューとその子ビューの間の左スペース。 | |
| paddingRight | ✅ | ✅ | ❌ | ✅ | float | このビューとその子ビューの間の右スペース。 | |
| paddingTop | ✅ | ✅ | ❌ | ✅ | float | このビューとその子ビューの間の上スペース。 | |
| paddingBottom | ✅ | ✅ | ❌ | ✅ | float | このビューとその子ビューの間の下スペース。 | |
| margins | ✅ | ✅ | ❌ | ✅ | float array | マージン値を設定するfloat配列。 この属性で設定された値は、特定のマージン属性(例:topMargin)によって上書きされます。 配列サイズが1の場合、同じ値がすべての位置に適用されます。 配列サイズが2の場合、最初の値が上下に、2番目の値が左右に設定されます。 配列サイズが3の場合、インデックスと位置は: 0: 上 1: 左右 2: 下 配列サイズが4の場合、インデックスと位置は: 0: 上 1: 左 2: 下 3: 右 |
|
| leftMargin | ✅ | ✅ | ❌ | ✅ | float | この属性はビューの左側にスペースを作成します。左方向に関連ビューが定義されている場合、その関連ビューからの距離として表示されます。「centerHorizontal」がtrueまたは「centerHorizontalView」が定義されている場合、中心からの距離として表示されます。 | |
| rightMargin | ✅ | ✅ | ❌ | ✅ | float | この属性はビューの右側にスペースを作成します。右方向に関連ビューが定義されている場合、その関連ビューからの距離として表示されます。「centerHorizontal」がtrueまたは「centerHorizontalView」が定義されている場合、中心からの距離として表示されます。 | |
| topMargin | ✅ | ✅ | ❌ | ✅ | float | この属性はビューの上側にスペースを作成します。上方向に関連ビューが定義されている場合、その関連ビューからの距離として表示されます。「centerVertical」がtrueまたは「centerVerticalView」が定義されている場合、中心からの距離として表示されます。 | |
| bottomMargin | ✅ | ✅ | ❌ | ✅ | float | この属性はビューの下側にスペースを作成します。下方向に関連ビューが定義されている場合、その関連ビューからの距離として表示されます。「centerVertical」がtrueまたは「centerVerticalView」が定義されている場合、中心からの距離として表示されます。 | |
| minLeftMargin | ✅ | ✅ | ❌ | ❌ | float | leftMarginの最小値 | |
| minRightMargin | ✅ | ✅ | ❌ | ❌ | float | rightMarginの最小値 | |
| minTopMargin | ✅ | ✅ | ❌ | ❌ | float | topMarginの最小値 | |
| minBottomMargin | ✅ | ✅ | ❌ | ❌ | float | bottomMarginの最小値 | |
| maxLeftMargin | ✅ | ✅ | ❌ | ❌ | float | leftMarginの最大値 | |
| maxRightMargin | ✅ | ✅ | ❌ | ❌ | float | rightMarginの最大値 | |
| maxTopMargin | ✅ | ✅ | ❌ | ❌ | float | topMarginの最大値 | |
| maxBottomMargin | ✅ | ✅ | ❌ | ❌ | float | bottomMarginの最大値 | |
| centerInParent | ✅ | ✅ | ❌ | ✅ | boolean | この属性が定義されている場合、ビューは親ビュー内で垂直・水平方向の中央に配置されます。 この属性は'orientation'が定義されていない場合のみ有効です。 |
|
| centerVertical | ✅ | ✅ | ❌ | ✅ | boolean | この属性が定義されている場合、ビューは親ビュー内で垂直方向の中央に配置されます。 この属性は'orientation'が定義されていない場合、または「horizontal」の場合のみ有効です。 |
|
| centerHorizontal | ✅ | ✅ | ❌ | ✅ | boolean | この属性が定義されている場合、ビューは親ビュー内で水平方向の中央に配置されます。 この属性は'orientation'が定義されていない場合、または「vertical」の場合のみ有効です。 |
|
| alignTop | ✅ | ✅ | ❌ | ✅ | boolean | この属性がtrueの場合、ビューは親ビューの上端に整列されます。 この属性は'orientation'が定義されていない場合、または「horizontal」の場合のみ有効です。 |
|
| alignBottom | ✅ | ✅ | ❌ | ✅ | boolean | この属性がtrueの場合、ビューは親ビューの下端に整列されます。 この属性は'orientation'が定義されていない場合、または「horizontal」の場合のみ有効です。 |
|
| alignLeft | ✅ | ✅ | ❌ | ✅ | boolean | この属性がtrueの場合、ビューは親ビューの左端に整列されます。 この属性は'orientation'が定義されていない場合、または「vertical」の場合のみ有効です。 |
|
| alignRight | ✅ | ✅ | ❌ | ✅ | boolean | この属性がtrueの場合、ビューは親ビューの右端に整列されます。 この属性は'orientation'が定義されていない場合、または「vertical」の場合のみ有効です。 |
|
| alignTopOfView | ✅ | ❌ | ❌ | ✅ | string | この属性は上端整列用の関連ビューを定義します。 ビューはこの属性の値に指定されたIDのビューの上に配置されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignBottomOfView | ✅ | ❌ | ❌ | ✅ | string | この属性は下端整列用の関連ビューを定義します。 ビューはこの属性の値に指定されたIDのビューの下に配置されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignLeftOfView | ✅ | ❌ | ❌ | ✅ | string | この属性は左端整列用の関連ビューを定義します。 ビューはこの属性の値に指定されたIDのビューの左に配置されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignRightOfView | ✅ | ❌ | ❌ | ✅ | string | この属性は右端整列用の関連ビューを定義します。 ビューはこの属性の値に指定されたIDのビューの右に配置されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignTopView | ✅ | ❌ | ❌ | ✅ | string | この属性は上端エッジ整列用の関連ビューを定義します。 ビューは指定されたビューの上端エッジに整列されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignBottomView | ✅ | ❌ | ❌ | ✅ | string | この属性は下端エッジ整列用の関連ビューを定義します。 ビューは指定されたビューの下端エッジに整列されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignLeftView | ✅ | ❌ | ❌ | ✅ | string | この属性は左端エッジ整列用の関連ビューを定義します。 ビューは指定されたビューの左端エッジに整列されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignRightView | ✅ | ❌ | ❌ | ✅ | string | この属性は右端エッジ整列用の関連ビューを定義します。 ビューは指定されたビューの右端エッジに整列されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignCenterVerticalView | ✅ | ❌ | ❌ | ✅ | string | この属性は垂直中央整列用の関連ビューを定義します。 ビューは指定されたビューの垂直中央に整列されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| alignCenterHorizontalView | ✅ | ❌ | ❌ | ✅ | string | この属性は水平中央整列用の関連ビューを定義します。 ビューは指定されたビューの水平中央に整列されます。 関連ビューはJSONファイル内でこのビューより前に定義されている必要があります。 |
|
| width | ✅ | ✅ | ✅ | ✅ | float|string |
必須。ビューの幅。 文字列値として、「matchParent」または「wrapContent」の2つのタイプがあります。float値として、0より大きい値である必要があります。 |
|
| height | ✅ | ✅ | ✅ | ✅ | float|string |
必須。ビューの高さ。 文字列値として、「matchParent」または「wrapContent」の2つのタイプがあります。float値として、0より大きい値である必要があります。 |
|
| minWidth | ✅ | ✅ | ❌ | ❌ | float | ビューの最小幅。 0より大きい値である必要があります。 |
|
| minHeight | ✅ | ✅ | ❌ | ❌ | float | ビューの最小高さ。 0より大きい値である必要があります。 |
|
| maxWidth | ✅ | ✅ | ❌ | ❌ | float | ビューの最大幅。 0より大きい値である必要があります。 |
|
| maxHeight | ✅ | ✅ | ❌ | ❌ | float | ビューの最大高さ。 0より大きい値である必要があります。 |
|
| widthWeight | ✅ | ✅ | ❌ | ❌ | float | 親に対する自身の幅の比率。 | |
| heightWeight | ✅ | ✅ | ❌ | ❌ | float | 親に対する自身の高さの比率。 | |
| aspectWidth | ✅ | ✅ | ❌ | ❌ | float | その高さに対する幅の比率。 | |
| aspectHeight | ✅ | ✅ | ❌ | ❌ | float | その幅に対する高さの比率。 | |
| maxWidthWeight | ✅ | ✅ | ❌ | ❌ | float | 親に対する自身の最大幅比率。 | |
| maxHeightWeight | ✅ | ✅ | ❌ | ❌ | float | 親に対する自身の最大高さ比率。 | |
| minWidthWeight | ✅ | ✅ | ❌ | ❌ | float | 親に対する自身の最小幅比率。 | |
| minHeightWeight | ✅ | ✅ | ❌ | ❌ | float | 親に対する自身の最小高さ比率。 | |
| weight | ✅ | ✅ | ✅ | ✅ | float | この属性は「orientation」が定義されている場合のみ有効です。 AndroidのLinear Layoutの「weight」属性のように動作します。 |
|
| compressHorizontal | ✅ | ❌ | ❌ | ❌ | string | 水平軸のcontentCompressionResistancePriority。 この属性には4つのタイプがあります: Required: UILayoutPriority.required High: UILayoutPriority.defaultHigh Low: UILayoutPriority.defaultLow Fit: UILayoutPriority.fittingSizeLevel |
|
| compressVertical | ✅ | ❌ | ❌ | ❌ | string | 垂直軸のcontentCompressionResistancePriority。 この属性には4つのタイプがあります: Required: UILayoutPriority.required High: UILayoutPriority.defaultHigh Low: UILayoutPriority.defaultLow Fit: UILayoutPriority.fittingSizeLevel |
|
| hugHorizontal | ✅ | ❌ | ❌ | ❌ | string | 水平軸のcontentHuggingPriority。 この属性には4つのタイプがあります: Required: UILayoutPriority.required High: UILayoutPriority.defaultHigh Low: UILayoutPriority.defaultLow Fit: UILayoutPriority.fittingSizeLevel |
|
| hugVertical | ✅ | ❌ | ❌ | ❌ | string | 垂直軸のcontentHuggingPriority。 この属性には4つのタイプがあります: Required: UILayoutPriority.required High: UILayoutPriority.defaultHigh Low: UILayoutPriority.defaultLow Fit: UILayoutPriority.fittingSizeLevel |