Swiftパッケージ · v0.1.2
KLGlassSegments
ネイティブなガラス表現とマテリアルのフォールバックをまたいで、ナビゲーション向けのセグメントコントロールを使えます。
KLGlassSegmentsはSwiftUIとUIKit向けのセグメントコントロールです。ジェネリックな選択ID、再タップ、ドラッグの取り消し、アクセシビリティ識別子、視差効果を減らす設定を一貫して扱い、利用できる環境ではiOSのネイティブなガラス表現を使います。
できること
- バインディングを使うSwiftUI APIと `UIControl` ベースのUIKit API
- セグメントを更新しても安定したジェネリックIDの選択を維持
- 再タップ、ドラッグの取り消し、VoiceOverによる実行に対応
- ネイティブなiOSのガラス表現とマテリアルのフォールバック
このパッケージがしないこと
このパッケージはセグメントコントロールの描画と操作を担当します。ナビゲーション状態、触覚フィードバックの方針、アプリの内容、プロダクト固有のスタイルは利用側のアプリが担当します。
SwiftPMで追加
Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLGlassSegments.git", from: "0.1.2")使い方
最小構成Swift
KLGlassSegmentedControl(
segments: segments,
selection: $selection,
floatingAction: composeAction
)KLGlassSegmentedControl選択中のIDをバインドするSwiftUIコントロールです。セグメント、スタイル、メトリクス、任意のアクション、再タップ時のコールバックを受け取ります。
KLGlassSegmentedUIKitControlセグメントの更新と外部選択の反映ができ、確定した変更では `.valueChanged` を送るUIKitコントロールです。
KLGlassSegmentジェネリックIDを持つ項目を表します。タイトル、SF Symbol、選択時の任意の色、アクセシビリティ識別子、利用可能な場合はUIKit画像を持ちます。
デモアプリ
GlassNavigation
バインディングを使うSwiftUI APIと `UIControl` ベースのUIKit API · セグメントを更新しても安定したジェネリックIDの選択を維持
SegmentGallery
再タップ、ドラッグの取り消し、VoiceOverによる実行に対応 · ネイティブなiOSのガラス表現とマテリアルのフォールバック