mirror of
https://github.com/ReactiveX/RxSwift.git
synced 2024-10-05 06:27:29 +03:00
Merge branch 'uipagecontrol-add-rx' of git://github.com/punty/RxSwift into punty-uipagecontrol-add-rx
This commit is contained in:
commit
38f5eb210f
@ -55,6 +55,11 @@
|
||||
84E4D3931C9AFD3500ADFDC9 /* UISearchController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E4D3901C9AFCD500ADFDC9 /* UISearchController+Rx.swift */; };
|
||||
84E4D3941C9AFD3600ADFDC9 /* UISearchController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E4D3901C9AFCD500ADFDC9 /* UISearchController+Rx.swift */; };
|
||||
84E4D3961C9B011000ADFDC9 /* UISearchController+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E4D3951C9B011000ADFDC9 /* UISearchController+RxTests.swift */; };
|
||||
914FCD671CCDB82E0058B304 /* UIPageControl+RxTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 914FCD661CCDB82E0058B304 /* UIPageControl+RxTest.swift */; };
|
||||
914FCD681CCDB82E0058B304 /* UIPageControl+RxTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 914FCD661CCDB82E0058B304 /* UIPageControl+RxTest.swift */; };
|
||||
91BE429C1CBF7EC000F6B062 /* UIPageControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91BE429B1CBF7EC000F6B062 /* UIPageControl+Rx.swift */; };
|
||||
91BE429D1CBF7EC000F6B062 /* UIPageControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91BE429B1CBF7EC000F6B062 /* UIPageControl+Rx.swift */; };
|
||||
91BE429F1CBF7F3D00F6B062 /* UIPageControl+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91BE429B1CBF7EC000F6B062 /* UIPageControl+Rx.swift */; };
|
||||
9BA1CBD31C0F7D550044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
|
||||
9BA1CBFD1C0F84A10044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
|
||||
9BA1CBFE1C0F84C40044B50A /* UIActivityIndicatorView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */; };
|
||||
@ -1376,6 +1381,8 @@
|
||||
84C225A21C33F00B008724EC /* RxTextStorageDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTextStorageDelegateProxy.swift; sourceTree = "<group>"; };
|
||||
84E4D3901C9AFCD500ADFDC9 /* UISearchController+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UISearchController+Rx.swift"; sourceTree = "<group>"; };
|
||||
84E4D3951C9B011000ADFDC9 /* UISearchController+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UISearchController+RxTests.swift"; sourceTree = "<group>"; };
|
||||
914FCD661CCDB82E0058B304 /* UIPageControl+RxTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIPageControl+RxTest.swift"; sourceTree = "<group>"; };
|
||||
91BE429B1CBF7EC000F6B062 /* UIPageControl+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIPageControl+Rx.swift"; sourceTree = "<group>"; };
|
||||
9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIActivityIndicatorView+Rx.swift"; sourceTree = "<group>"; };
|
||||
A111CE961B91C97C00D0DCEE /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
AAE623751C82475700FC7801 /* UIProgressView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIProgressView+Rx.swift"; sourceTree = "<group>"; };
|
||||
@ -2274,6 +2281,7 @@
|
||||
C8F27DAC1CE6710900D5FB4F /* UITextField+RxTests.swift */,
|
||||
C8F27DB11CE6711600D5FB4F /* UITextView+RxTests.swift */,
|
||||
844BC8B71CE5023200F5C7CB /* UIPickerView+RxTests.swift */,
|
||||
914FCD661CCDB82E0058B304 /* UIPageControl+RxTest.swift */,
|
||||
);
|
||||
path = RxCocoaTests;
|
||||
sourceTree = "<group>";
|
||||
@ -2396,6 +2404,7 @@
|
||||
C882540A1B8A752B00B02D69 /* UIGestureRecognizer+Rx.swift */,
|
||||
C882540B1B8A752B00B02D69 /* UIImageView+Rx.swift */,
|
||||
C882540C1B8A752B00B02D69 /* UILabel+Rx.swift */,
|
||||
91BE429B1CBF7EC000F6B062 /* UIPageControl+Rx.swift */,
|
||||
AAE623751C82475700FC7801 /* UIProgressView+Rx.swift */,
|
||||
7F600F3D1C5D0C0100535B1D /* UIRefreshControl+Rx.swift */,
|
||||
C882540D1B8A752B00B02D69 /* UIScrollView+Rx.swift */,
|
||||
@ -3328,6 +3337,7 @@
|
||||
C88F76811CE5341700D5A014 /* RxTextInput.swift in Sources */,
|
||||
C882542E1B8A752B00B02D69 /* UILabel+Rx.swift in Sources */,
|
||||
54D2138E1CE0824E0028D5B4 /* UINavigationItem+Rx.swift in Sources */,
|
||||
91BE429C1CBF7EC000F6B062 /* UIPageControl+Rx.swift in Sources */,
|
||||
C88254211B8A752B00B02D69 /* RxSearchBarDelegateProxy.swift in Sources */,
|
||||
C80DDEA71BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */,
|
||||
7EDBAEBC1C89B9B7006CBE67 /* UITabBarItem+Rx.swift in Sources */,
|
||||
@ -3472,6 +3482,7 @@
|
||||
C83509561C38706E0027C24C /* Observable+ConcurrencyTest.swift in Sources */,
|
||||
C835095A1C38706E0027C24C /* Observable+MultipleTest+Zip.swift in Sources */,
|
||||
C83509621C38706E0027C24C /* QueueTests.swift in Sources */,
|
||||
914FCD671CCDB82E0058B304 /* UIPageControl+RxTest.swift in Sources */,
|
||||
C83509551C38706E0027C24C /* Observable+BlockingTest.swift in Sources */,
|
||||
C83509351C38706E0027C24C /* KVOObservableTests.swift in Sources */,
|
||||
C83509421C38706E0027C24C /* MainThreadPrimitiveHotObservable.swift in Sources */,
|
||||
@ -3587,6 +3598,7 @@
|
||||
C83509C31C3875220027C24C /* KVOObservableTests.swift in Sources */,
|
||||
C83509F91C38755D0027C24C /* MainSchedulerTests.swift in Sources */,
|
||||
7EDBAEC31C89BCB9006CBE67 /* UITabBarItem+RxTests.swift in Sources */,
|
||||
914FCD681CCDB82E0058B304 /* UIPageControl+RxTest.swift in Sources */,
|
||||
C83509AB1C3874D20027C24C /* XCTest+AllTests.swift in Sources */,
|
||||
C83509C11C3875220027C24C /* Driver+Extensions.swift in Sources */,
|
||||
C83509DD1C38754C0027C24C /* EquatableArray.swift in Sources */,
|
||||
@ -4279,6 +4291,7 @@
|
||||
C8F0C0341BBBFBB9001B112F /* Logging.swift in Sources */,
|
||||
C8F0C0351BBBFBB9001B112F /* UICollectionView+Rx.swift in Sources */,
|
||||
C8F0C0361BBBFBB9001B112F /* RxCollectionViewDataSourceType.swift in Sources */,
|
||||
91BE429F1CBF7F3D00F6B062 /* UIPageControl+Rx.swift in Sources */,
|
||||
846436E61C9AF6670035B40D /* RxSearchControllerDelegateProxy.swift in Sources */,
|
||||
C8F0C0371BBBFBB9001B112F /* NSNotificationCenter+Rx.swift in Sources */,
|
||||
C8F0C0381BBBFBB9001B112F /* UITextField+Rx.swift in Sources */,
|
||||
@ -4376,6 +4389,7 @@
|
||||
D203C4FA1BB9C53700D02D00 /* RxCollectionViewDataSourceProxy.swift in Sources */,
|
||||
D2138C7F1BB9BEBE00339B5C /* _RX.m in Sources */,
|
||||
8479BC4D1C3ACF6E00FB8B54 /* UIImagePickerController+Rx.swift in Sources */,
|
||||
91BE429D1CBF7EC000F6B062 /* UIPageControl+Rx.swift in Sources */,
|
||||
D203C4FE1BB9C53700D02D00 /* RxTableViewDataSourceProxy.swift in Sources */,
|
||||
D203C5001BB9C53700D02D00 /* RxTextViewDelegateProxy.swift in Sources */,
|
||||
844BC8AD1CE4FA6400F5C7CB /* RxPickerViewDelegateProxy.swift in Sources */,
|
||||
|
29
RxCocoa/iOS/UIPageControl+Rx.swift
Normal file
29
RxCocoa/iOS/UIPageControl+Rx.swift
Normal file
@ -0,0 +1,29 @@
|
||||
//
|
||||
// UIPageControl+Rx.swift
|
||||
// Rx
|
||||
//
|
||||
// Created by Francesco Puntillo on 14/04/2016.
|
||||
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
|
||||
//
|
||||
|
||||
#if os(iOS) || os(tvOS)
|
||||
|
||||
import Foundation
|
||||
#if !RX_NO_MODULE
|
||||
import RxSwift
|
||||
#endif
|
||||
import UIKit
|
||||
|
||||
extension UIPageControl {
|
||||
|
||||
/**
|
||||
Bindable sink for `currentPage` property.
|
||||
*/
|
||||
public var rx_currentPage: AnyObserver<Int> {
|
||||
return UIBindingObserver(UIElement: self) { controller, page in
|
||||
controller.currentPage = page
|
||||
}.asObserver()
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
30
Tests/RxCocoaTests/UIPageControl+RxTest.swift
Normal file
30
Tests/RxCocoaTests/UIPageControl+RxTest.swift
Normal file
@ -0,0 +1,30 @@
|
||||
//
|
||||
// UIPageControl+RxTest.swift
|
||||
// Rx
|
||||
//
|
||||
// Created by Francesco Puntillo on 25/04/2016.
|
||||
// Copyright © 2016 Krunoslav Zaher. All rights reserved.
|
||||
//
|
||||
|
||||
#if os(iOS)
|
||||
|
||||
import Foundation
|
||||
|
||||
import RxSwift
|
||||
import RxCocoa
|
||||
import UIKit
|
||||
import XCTest
|
||||
|
||||
class UIPageControlTest : RxTest {
|
||||
}
|
||||
|
||||
extension UIPageControlTest {
|
||||
func testPageControl_CurrentPage() {
|
||||
let pageControl = UIPageControl(frame: CGRect.zero)
|
||||
pageControl.numberOfPages = 10
|
||||
Observable.just(5).bindTo(pageControl.rx_currentPage).dispose()
|
||||
XCTAssertTrue(pageControl.currentPage == 5)
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user