Merge branch 'uipagecontrol-add-rx' of git://github.com/punty/RxSwift into punty-uipagecontrol-add-rx

This commit is contained in:
Krunoslav Zaher 2016-05-27 22:34:01 +02:00
commit 38f5eb210f
3 changed files with 73 additions and 0 deletions

View File

@ -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 */,

View 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

View 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