Swiftパッケージ · v0.1.2

KLGlassSegments

ネイティブなガラス表現とマテリアルのフォールバックをまたいで、ナビゲーション向けのセグメントコントロールを使えます。

KLGlassSegmentsはSwiftUIとUIKit向けのセグメントコントロールです。ジェネリックな選択ID、再タップ、ドラッグの取り消し、アクセシビリティ識別子、視差効果を減らす設定を一貫して扱い、利用できる環境ではiOSのネイティブなガラス表現を使います。

対応OS
iOS 17+ · macOS 14+
開発環境
Swift 6.0+
ライセンス
MIT
外部依存
なし

できること

  • バインディングを使う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のガラス表現とマテリアルのフォールバック