@@ -13,6 +13,17 @@ import UIKit
13
13
import RxCocoa
14
14
#endif
15
15
16
+ /// A reactive UIPickerView adapter which uses `func pickerView(UIPickerView, titleForRow: Int, forComponent: Int)` to desplay content
17
+ /**
18
+ Example:
19
+
20
+ let adapter = RxPickerViewStringAdapter<[T]>(...)
21
+
22
+ items
23
+ .bind(to: firstPickerView.rx.items(adapter: adapter))
24
+ .disposed(by: disposeBag)
25
+
26
+ */
16
27
open class RxPickerViewStringAdapter < T> : RxPickerViewDataSource < T > , UIPickerViewDelegate {
17
28
public typealias TitleForRow = ( RxPickerViewStringAdapter < T > , UIPickerView , T , Int , Int ) -> String ?
18
29
@@ -33,6 +44,17 @@ open class RxPickerViewStringAdapter<T>: RxPickerViewDataSource<T>, UIPickerView
33
44
}
34
45
}
35
46
47
+ /// A reactive UIPickerView adapter which uses `func pickerView(UIPickerView, viewForRow: Int, forComponent: Int, reusing: UIView?)` to desplay content
48
+ /**
49
+ Example:
50
+
51
+ let adapter = RxPickerViewAttributedStringAdapter<[T]>(...)
52
+
53
+ items
54
+ .bind(to: firstPickerView.rx.items(adapter: adapter))
55
+ .disposed(by: disposeBag)
56
+
57
+ */
36
58
open class RxPickerViewAttributedStringAdapter < T> : RxPickerViewDataSource < T > , UIPickerViewDelegate {
37
59
public typealias AttributedTitleForRow = ( RxPickerViewAttributedStringAdapter < T > , UIPickerView , T , Int , Int ) -> NSAttributedString ?
38
60
@@ -53,6 +75,17 @@ open class RxPickerViewAttributedStringAdapter<T>: RxPickerViewDataSource<T>, UI
53
75
}
54
76
}
55
77
78
+ /// A reactive UIPickerView adapter which uses `func pickerView(pickerView:, viewForRow row:, forComponent component:)` to desplay content
79
+ /**
80
+ Example:
81
+
82
+ let adapter = RxPickerViewViewAdapter<[T]>(...)
83
+
84
+ items
85
+ .bind(to: firstPickerView.rx.items(adapter: adapter))
86
+ .disposed(by: disposeBag)
87
+
88
+ */
56
89
open class RxPickerViewViewAdapter < T> : RxPickerViewDataSource < T > , UIPickerViewDelegate {
57
90
public typealias ViewForRow = ( RxPickerViewViewAdapter < T > , UIPickerView , T , Int , Int , UIView ? ) -> UIView
58
91
@@ -73,7 +106,7 @@ open class RxPickerViewViewAdapter<T>: RxPickerViewDataSource<T>, UIPickerViewDe
73
106
}
74
107
}
75
108
76
-
109
+ /// A reactive UIPickerView data source
77
110
open class RxPickerViewDataSource < T> : NSObject , UIPickerViewDataSource {
78
111
public typealias NumberOfComponents = ( RxPickerViewDataSource , UIPickerView , T ) -> Int
79
112
public typealias NumberOfRowsInComponent = ( RxPickerViewDataSource , UIPickerView , T , Int ) -> Int
@@ -108,6 +141,6 @@ extension RxPickerViewDataSource: RxPickerViewDataSourceType {
108
141
UIBindingObserver ( UIElement: self ) { ( dataSource, components) in
109
142
dataSource. components = components
110
143
pickerView. reloadAllComponents ( )
111
- } . on ( observedEvent)
144
+ } . on ( observedEvent)
112
145
}
113
146
}
0 commit comments