O2AlamofireSource.swift 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. //
  2. // O2Alam.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 2016/12/16.
  6. // Copyright © 2016年 zoneland. All rights reserved.
  7. //
  8. import ImageSlideshow
  9. import Alamofire
  10. import AlamofireImage
  11. import EZSwiftExtensions
  12. import CocoaLumberjack
  13. public class O2AlamofireSource: NSObject, InputSource {
  14. var url: URL
  15. public init(url: URL) {
  16. self.url = url
  17. super.init()
  18. }
  19. // var imageHeight:CGFloat {
  20. // get {
  21. // var tmp = CGFloat(142.0)
  22. // let deviceName = UIDevice.deviceModelReadable()
  23. // switch deviceName {
  24. // case "iPhone 5","iPhone 5C","iPhone 5S","iPhone SE":
  25. // tmp = CGFloat(142.0)
  26. // case "iPhone 6","iPhone 6S","iPhone 7":
  27. // tmp = CGFloat(172.0)
  28. // case "iPhone 6 Plus","iPhone 6S Plus","iPhone 7 Plus":
  29. // tmp = CGFloat(202.0)
  30. // default:
  31. // tmp = CGFloat(142.0)
  32. // }
  33. // return tmp
  34. // }
  35. // }
  36. public init?(urlString: String) {
  37. if let validUrl = URL(string: urlString) {
  38. self.url = validUrl
  39. super.init()
  40. } else {
  41. return nil
  42. }
  43. }
  44. public func load(to imageView: UIImageView, with callback: @escaping (_ image: UIImage?) -> Void){
  45. // let frame = imageView.bounds
  46. // if frame.width <= 0 || frame.height <= 0 {
  47. // let height = SCREEN_WIDTH / 2
  48. // imageView.bounds = CGRect(x: 0, y: 0, w: SCREEN_WIDTH, h: height)
  49. // }
  50. // imageView.hnk_setImageFromURL(self.url, placeholder: UIImage(named: "pic_lunbo_1"), format: nil, failure: { (error) in
  51. // DDLogError("下载图片异常\(String(describing: error))")
  52. // callback(nil)
  53. // }) { (newImage) in
  54. // imageView.image = newImage
  55. // callback(newImage)
  56. // }
  57. let config = ImageDownloader.defaultURLSessionConfiguration()
  58. let imageDownloader = ImageDownloader(configuration: config,
  59. downloadPrioritization: .fifo,
  60. maximumActiveDownloads: 10,
  61. imageCache: AutoPurgingImageCache())
  62. //ImageFilter
  63. let height = SCREEN_WIDTH / 2
  64. let imageFilter = ScaledToSizeFilter(size: CGSize(width: SCREEN_WIDTH, height: height))
  65. //placeholderImage
  66. imageView.af_imageDownloader = imageDownloader
  67. // let tempURL = URL(string: "http://d.ifengimg.com/mw978_mh598/p0.ifengimg.com/cmpp/2018/03/21/06/530de4b1-3127-4a9b-b764-efa3444d04e0_size275_w1024_h768.jpg")!
  68. var urlRequest = URLRequest(url: self.url)
  69. urlRequest.addValue("application/json", forHTTPHeaderField: "Content-Type")
  70. imageView.af_setImage(withURLRequest: urlRequest, placeholderImage: UIImage(named: "pic_lunbo_1"), filter: imageFilter, progress: nil, progressQueue: DispatchQueue.main, imageTransition: .crossDissolve(0.1), runImageTransitionIfCached: false) { (response) in
  71. if let value = response.result.value {
  72. let newImage = value
  73. // let newImage = UIImage.scaleTo(image: value, w: SCREEN_WIDTH , h: self.imageHeight)
  74. imageView.image = newImage
  75. callback(newImage)
  76. }
  77. }
  78. }
  79. // public func load(to imageView: UIImageView, with callback: @escaping (UIImage) -> ()) {
  80. //
  81. // let config = ImageDownloader.defaultURLSessionConfiguration()
  82. // let imageDownloader = ImageDownloader(configuration: config,
  83. // downloadPrioritization: .fifo,
  84. // maximumActiveDownloads: 10,
  85. // imageCache: AutoPurgingImageCache())
  86. // //ImageFilter
  87. // let imageFilter = ScaledToSizeFilter(size: CGSize(width:SCREEN_WIDTH,height:self.imageHeight))
  88. // //placeholderImage
  89. //
  90. // imageView.af_imageDownloader = imageDownloader
  91. //// let tempURL = URL(string: "http://d.ifengimg.com/mw978_mh598/p0.ifengimg.com/cmpp/2018/03/21/06/530de4b1-3127-4a9b-b764-efa3444d04e0_size275_w1024_h768.jpg")!
  92. // var urlRequest = URLRequest(url: self.url)
  93. // urlRequest.addValue("application/json", forHTTPHeaderField: "Content-Type")
  94. // imageView.af_setImage(withURLRequest: urlRequest, placeholderImage: UIImage(named: "pic_lunbo_1"), filter: imageFilter, progress: nil, progressQueue: DispatchQueue.main, imageTransition: .crossDissolve(0.1), runImageTransitionIfCached: false) { (response) in
  95. // if let value = response.result.value {
  96. // let newImage = value
  97. // // let newImage = UIImage.scaleTo(image: value, w: SCREEN_WIDTH , h: self.imageHeight)
  98. // imageView.image = newImage
  99. // callback(newImage)
  100. // }
  101. // }
  102. // }
  103. }