Repository navigation
CZPicker is back with modern selection sheets for SwiftUI and UIKit, Swift Package Manager support, and the same dependency-free approach as the original library.
What's new
- Searchable single/multiple selection, selected chips, sections, disabled choices, optional limits, and custom SwiftUI rows.
- A UIKit presenter using the same modern UI.
- Cancel and Done stay visible during search; selections commit only on Done.
- Improved contrast and scalable action controls.
- A runnable showcase, real animated demo, and screenshot gallery.
Existing applications
The original Objective-C source and header remain byte-for-byte identical to 0.4.3. The new UI is opt-in. The minimum deployment target changes to iOS 15 for the original API and iOS 16 for the modern API. No third-party runtime dependencies have been added.
Install with Swift Package Manager
Add https://github.com/chenzeyu/CZPicker.git in Xcode, select version 1.0.0, and add CZPickerUI for the modern API or CZPicker for the original Objective-C API.
.package(url: "https://github.com/chenzeyu/CZPicker.git", from: "1.0.0")Swift tools 5.9 / Xcode 15+ are required.
CocoaPods
Trunk publication is pending maintainer authentication. Git-tag installation is available now:
pod 'CZPicker/SwiftUI', :git => 'https://github.com/chenzeyu/CZPicker.git', :tag => '1.0.0'
# Original API:
pod 'CZPicker/Core', :git => 'https://github.com/chenzeyu/CZPicker.git', :tag => '1.0.0'CocoaPods uses import CZPicker; the modern SPM product uses import CZPickerUI.
Validation and known limits
12 package tests, seven iPhone showcase tests, four iPad interaction tests, both CocoaPods subspec lints, and the unsigned generic iOS device build passed. The scoped iPhone accessibility audit passes in light and dark appearance, excluding only contrast on a known disabled fixture.
Minimum-OS runtime checks could not be performed; the maintainer accepted proceeding without them. Physical-device runs and manual VoiceOver/hardware-keyboard/Reduce Motion checks remain unverified. The separate full-screen iPad accessibility audit is not recorded as passing. Some built-in strings are English, and hosted CI is not active. See the full validation record.
Try the showcase and quick start, and report issues with your iOS/Xcode versions and a small reproduction.