CombineCocoa 0.4.1

CombineCocoa 0.4.1

Combine 社区 维护。



  • Shai Mishali

CombineCocoa



Build Status
CombineCocoa supports CocoaPods CombineCocoa supports Swift Package Manager (SPM) CombineCocoa supports Carthage

CombineCocoa 试图为常用的 UIKit 控件提供发布者,以便您可以将用户交互作为 Combine 发射量消费,并将它们组合成有意义的、逻辑的发布者链。

注意:这仍然是这个项目的最初版本,还有更多需要改进的地方。我非常欢迎通过 PR、想法、观点或改进来提出建议。谢谢! :)

基本示例

查看 示例文件夹中的示例。在 Xcode 11 中打开项目,Swift Package Manager 应该会自动解析所需的依赖项。

使用说明

快速理解

import Combine
import CombineCocoa

textField.textPublisher // AnyPublisher<String, Never>
segmented.selectedSegmentIndexPublisher // AnyPublisher<Int, Never>
slider.valuePublisher // AnyPublisher<Float, Never>
button.tapPublisher // AnyPublisher<Void, Never>
barButtonItem.tapPublisher // AnyPublisher<Void, Never>
switch.isOnPublisher // AnyPublisher<Bool, Never>
stepper.valuePublisher // AnyPublisher<Double, Never>
datePicker.datePublisher // AnyPublisher<Date, Never>
refreshControl.isRefreshingPublisher // AnyPublisher<Bool, Never>
pageControl.currentPagePublisher // AnyPublisher<Int, Never>
tapGesture.tapPublisher // AnyPublisher<UITapGestureRecognizer, Never>
pinchGesture.pinchPublisher // AnyPublisher<UIPinchGestureRecognizer, Never>
rotationGesture.rotationPublisher // AnyPublisher<UIRotationGestureRecognizer, Never>
swipeGesture.swipePublisher // AnyPublisher<UISwipeGestureRecognizer, Never>
panGesture.panPublisher // AnyPublisher<UIPanGestureRecognizer, Never>
screenEdgePanGesture.screenEdgePanPublisher // AnyPublisher<UIScreenEdgePanGestureRecognizer, Never>
longPressGesture.longPressPublisher // AnyPublisher<UILongPressGestureRecognizer, Never>
scrollView.contentOffsetPublisher // AnyPublisher<CGPoint, Never>
scrollView.reachedBottomPublisher(offset:) // AnyPublisher<Void, Never>

安装

CocoaPods

将以下行添加到您的 Podfile

pod 'CombineCocoa'

Swift Package Manager

将以下依赖项添加到您的 Package.swift 文件中

.package(url: "https://github.com/CombineCommunity/CombineCocoa.git", from: "0.2.1")

Carthage

将以下内容添加到您的 Cartfile

github "CombineCommunity/CombineCocoa"

未来想法

  • 支持非 UIControl.Event 类型的发布者(例如代理)。
  • ...您的想法? :)

感谢

许可

当然是MIT许可;-) 请查看LICENSE文件。

苹果标志和Combine框架均归苹果公司所有。