ES.swift 711 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //
  2. // ES.swift
  3. // ESPullToRefreshExample
  4. //
  5. // Created by 木瓜 on 2017/4/25.
  6. // Copyright © 2017年 egg swift. All rights reserved.
  7. //
  8. import UIKit
  9. public protocol ESExtensionsProvider: class {
  10. associatedtype CompatibleType
  11. var es: CompatibleType { get }
  12. }
  13. extension ESExtensionsProvider {
  14. /// A proxy which hosts reactive extensions for `self`.
  15. public var es: ES<Self> {
  16. return ES(self)
  17. }
  18. }
  19. public struct ES<Base> {
  20. public let base: Base
  21. // Construct a proxy.
  22. //
  23. // - parameters:
  24. // - base: The object to be proxied.
  25. fileprivate init(_ base: Base) {
  26. self.base = base
  27. }
  28. }
  29. //
  30. extension UIScrollView: ESExtensionsProvider {}