Browse Source

1.添加第三方SDCycleScrollView处理 图片显示

huangxiaodong 1 year ago
parent
commit
00c9f586ba
54 changed files with 5079 additions and 2524 deletions
  1. 2 0
      创维盒子/Podfile
  2. 6 1
      创维盒子/Podfile.lock
  3. 1 0
      创维盒子/Pods/Headers/Private/SDCycleScrollView/SDCollectionViewCell.h
  4. 1 0
      创维盒子/Pods/Headers/Private/SDCycleScrollView/SDCycleScrollView.h
  5. 1 0
      创维盒子/Pods/Headers/Private/SDCycleScrollView/TAAbstractDotView.h
  6. 1 0
      创维盒子/Pods/Headers/Private/SDCycleScrollView/TAAnimatedDotView.h
  7. 1 0
      创维盒子/Pods/Headers/Private/SDCycleScrollView/TADotView.h
  8. 1 0
      创维盒子/Pods/Headers/Private/SDCycleScrollView/TAPageControl.h
  9. 1 0
      创维盒子/Pods/Headers/Private/SDCycleScrollView/UIView+SDExtension.h
  10. 1 0
      创维盒子/Pods/Headers/Public/SDCycleScrollView/SDCollectionViewCell.h
  11. 1 0
      创维盒子/Pods/Headers/Public/SDCycleScrollView/SDCycleScrollView.h
  12. 1 0
      创维盒子/Pods/Headers/Public/SDCycleScrollView/TAAbstractDotView.h
  13. 1 0
      创维盒子/Pods/Headers/Public/SDCycleScrollView/TAAnimatedDotView.h
  14. 1 0
      创维盒子/Pods/Headers/Public/SDCycleScrollView/TADotView.h
  15. 1 0
      创维盒子/Pods/Headers/Public/SDCycleScrollView/TAPageControl.h
  16. 1 0
      创维盒子/Pods/Headers/Public/SDCycleScrollView/UIView+SDExtension.h
  17. 6 1
      创维盒子/Pods/Manifest.lock
  18. 2737 2502
      创维盒子/Pods/Pods.xcodeproj/project.pbxproj
  19. 58 0
      创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/SDCycleScrollView.xcscheme
  20. 5 0
      创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/xcschememanagement.plist
  21. 22 0
      创维盒子/Pods/SDCycleScrollView/LICENSE
  22. 62 0
      创维盒子/Pods/SDCycleScrollView/README.md
  23. 24 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h
  24. 30 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.m
  25. 15 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h
  26. 88 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.m
  27. 13 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h
  28. 63 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.m
  29. 106 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.h
  30. 364 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.m
  31. 51 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h
  32. 116 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.m
  33. 211 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.h
  34. 700 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.m
  35. 44 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h
  36. 107 0
      创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.m
  37. 1 1
      创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.debug.xcconfig
  38. 1 1
      创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.release.xcconfig
  39. 26 0
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.markdown
  40. 32 0
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.plist
  41. 3 3
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.debug.xcconfig
  42. 3 3
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.release.xcconfig
  43. 26 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.markdown
  44. 32 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.plist
  45. 3 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.debug.xcconfig
  46. 3 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.release.xcconfig
  47. 26 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.markdown
  48. 32 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.plist
  49. 3 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.debug.xcconfig
  50. 3 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.release.xcconfig
  51. 5 0
      创维盒子/Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView-dummy.m
  52. 12 0
      创维盒子/Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView-prefix.pch
  53. 12 0
      创维盒子/Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView.debug.xcconfig
  54. 12 0
      创维盒子/Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView.release.xcconfig

+ 2 - 0
创维盒子/Podfile

@@ -27,6 +27,8 @@ def all_Pods
   pod 'lottie-ios-OC'
   pod 'JJException'
   pod 'WechatOpenSDK'
+
+  pod 'SDCycleScrollView','>= 1.82'
 end
 
 target '隐私保护' do

+ 6 - 1
创维盒子/Podfile.lock

@@ -43,6 +43,8 @@ PODS:
   - MJExtension (3.4.1)
   - PLeakSniffer (0.1.0)
   - RayProxy (0.0.1)
+  - SDCycleScrollView (1.82):
+    - SDWebImage (>= 5.0.0)
   - SDWebImage (5.12.1):
     - SDWebImage/Core (= 5.12.1)
   - SDWebImage/Core (5.12.1)
@@ -63,6 +65,7 @@ DEPENDENCIES:
   - MJExtension
   - PLeakSniffer
   - RayProxy (from `./RayProxy`)
+  - SDCycleScrollView (>= 1.82)
   - SDWebImage
   - TZImagePickerController
   - WechatOpenSDK
@@ -80,6 +83,7 @@ SPEC REPOS:
     - Masonry
     - MJExtension
     - PLeakSniffer
+    - SDCycleScrollView
     - SDWebImage
     - SVProgressHUD
     - TZImagePickerController
@@ -102,11 +106,12 @@ SPEC CHECKSUMS:
   MJExtension: 21c5f6f8c4d5d8844b7ae8fbae08fed0b501f961
   PLeakSniffer: f7eb13cd3a36150e0a2fd5fe8a33ca83bd2646d4
   RayProxy: 026b86d1bb05ccdc3eb294b4ff00a8d8b64313dd
+  SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf
   SDWebImage: 4dc3e42d9ec0c1028b960a33ac6b637bb432207b
   SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6
   TZImagePickerController: 679ae9fa11e189a9a81291ae96f0a4463be8edc1
   WechatOpenSDK: 290989072e87b79d52225a01bb4e5e58f6f88593
 
-PODFILE CHECKSUM: 059631c6e427ed97974a993b16668403816d0075
+PODFILE CHECKSUM: 73db0f4d5d4ef8664732e32cb9b2738ca945b9f0
 
 COCOAPODS: 1.11.3

+ 1 - 0
创维盒子/Pods/Headers/Private/SDCycleScrollView/SDCollectionViewCell.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h

+ 1 - 0
创维盒子/Pods/Headers/Private/SDCycleScrollView/SDCycleScrollView.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.h

+ 1 - 0
创维盒子/Pods/Headers/Private/SDCycleScrollView/TAAbstractDotView.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h

+ 1 - 0
创维盒子/Pods/Headers/Private/SDCycleScrollView/TAAnimatedDotView.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h

+ 1 - 0
创维盒子/Pods/Headers/Private/SDCycleScrollView/TADotView.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h

+ 1 - 0
创维盒子/Pods/Headers/Private/SDCycleScrollView/TAPageControl.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.h

+ 1 - 0
创维盒子/Pods/Headers/Private/SDCycleScrollView/UIView+SDExtension.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h

+ 1 - 0
创维盒子/Pods/Headers/Public/SDCycleScrollView/SDCollectionViewCell.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h

+ 1 - 0
创维盒子/Pods/Headers/Public/SDCycleScrollView/SDCycleScrollView.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.h

+ 1 - 0
创维盒子/Pods/Headers/Public/SDCycleScrollView/TAAbstractDotView.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h

+ 1 - 0
创维盒子/Pods/Headers/Public/SDCycleScrollView/TAAnimatedDotView.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h

+ 1 - 0
创维盒子/Pods/Headers/Public/SDCycleScrollView/TADotView.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h

+ 1 - 0
创维盒子/Pods/Headers/Public/SDCycleScrollView/TAPageControl.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.h

+ 1 - 0
创维盒子/Pods/Headers/Public/SDCycleScrollView/UIView+SDExtension.h

@@ -0,0 +1 @@
+../../../SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h

+ 6 - 1
创维盒子/Pods/Manifest.lock

@@ -43,6 +43,8 @@ PODS:
   - MJExtension (3.4.1)
   - PLeakSniffer (0.1.0)
   - RayProxy (0.0.1)
+  - SDCycleScrollView (1.82):
+    - SDWebImage (>= 5.0.0)
   - SDWebImage (5.12.1):
     - SDWebImage/Core (= 5.12.1)
   - SDWebImage/Core (5.12.1)
@@ -63,6 +65,7 @@ DEPENDENCIES:
   - MJExtension
   - PLeakSniffer
   - RayProxy (from `./RayProxy`)
+  - SDCycleScrollView (>= 1.82)
   - SDWebImage
   - TZImagePickerController
   - WechatOpenSDK
@@ -80,6 +83,7 @@ SPEC REPOS:
     - Masonry
     - MJExtension
     - PLeakSniffer
+    - SDCycleScrollView
     - SDWebImage
     - SVProgressHUD
     - TZImagePickerController
@@ -102,11 +106,12 @@ SPEC CHECKSUMS:
   MJExtension: 21c5f6f8c4d5d8844b7ae8fbae08fed0b501f961
   PLeakSniffer: f7eb13cd3a36150e0a2fd5fe8a33ca83bd2646d4
   RayProxy: 026b86d1bb05ccdc3eb294b4ff00a8d8b64313dd
+  SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf
   SDWebImage: 4dc3e42d9ec0c1028b960a33ac6b637bb432207b
   SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6
   TZImagePickerController: 679ae9fa11e189a9a81291ae96f0a4463be8edc1
   WechatOpenSDK: 290989072e87b79d52225a01bb4e5e58f6f88593
 
-PODFILE CHECKSUM: 059631c6e427ed97974a993b16668403816d0075
+PODFILE CHECKSUM: 73db0f4d5d4ef8664732e32cb9b2738ca945b9f0
 
 COCOAPODS: 1.11.3

File diff suppressed because it is too large
+ 2737 - 2502
创维盒子/Pods/Pods.xcodeproj/project.pbxproj


+ 58 - 0
创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/SDCycleScrollView.xcscheme

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1240"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "CBED833AAD6266F3AEFE9BE31C68E094"
+               BuildableName = "libSDCycleScrollView.a"
+               BlueprintName = "SDCycleScrollView"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 5 - 0
创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -79,6 +79,11 @@
 			<key>isShown</key>
 			<false/>
 		</dict>
+		<key>SDCycleScrollView.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+		</dict>
 		<key>SDWebImage.xcscheme</key>
 		<dict>
 			<key>isShown</key>

+ 22 - 0
创维盒子/Pods/SDCycleScrollView/LICENSE

@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 GSD_iOS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+

+ 62 - 0
创维盒子/Pods/SDCycleScrollView/README.md

@@ -0,0 +1,62 @@
+# SDCycleScrollView(新建QQ交流群:185534916、675995250)
+## ☆☆☆ “iOS图片、文字轮播器” ☆☆☆
+
+### 支持pod导入
+pod 'SDCycleScrollView','>= 1.80'
+
+
+### 更改记录:
+
+2019.04.10 -- 适配SDWebImage 5.0.0
+
+2017.11.26 -- 增加滚动到指定index接口
+
+2017.10.28 -- 更新对SDWebImage的版本依赖
+
+2017.06.23 -- 1.增加支持轮播自定义cell的代理方法 2.增加禁止拖动手势api
+
+2016.05.27 -- 新增纯文字轮播、增加viewController在来回push时候出现的图片卡在中间的解决方案“解决viewWillAppear时出现时轮播图卡在一半的问题,在控制器viewWillAppear时调用 adjustWhenControllerViewWillAppera”
+
+2016.04.21 -- 修复自定义图片的pagecontrol刷新图片数据时崩溃bug;设置单张图片时停止轮播
+
+2016.03.31 -- 增加垂直方向滚动功能
+
+2016.01.21 -- 修复加载时出现item size zero提示问题
+
+2016.01.15 -- 兼容assets存放的本地图片
+
+2016.01.06 -- 0.图片管理使用SDWebImage;1.优化内存,提升性能;2.添加图片contentmode接口;3.block监听点击接口;4.滚动到某张图片监听;5.增加自定义图片pageControl接口;6.其他等等。其中有一处接口改动:pagecontrol的小圆点自定义接口改为:currentPageDotColor、pageDotColor、currentPageDotImage、pageDotImage。
+
+           
+### 无限循环自动图片轮播器(一步设置即可使用)
+
+     // 网络加载图片的轮播器
+     SDCycleScrollView *cycleScrollView = [cycleScrollViewWithFrame:frame delegate:delegate placeholderImage:placeholderImage];
+     cycleScrollView.imageURLStringsGroup = imagesURLStrings;
+     
+     // 本地加载图片的轮播器
+     SDCycleScrollView *cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame: imagesGroup:图片数组];
+    
+    
+ ---------------------------------------------------------------------------------------------------------------
+ 
+## Q&A: 
+### 为什么我用这个轮播期会在顶部出现一块空白区域
+以下是本库的使用者给出的一些解决方法放在这里供大家参考:
+在iOS 7以后,controller 会对其中唯一的scrollView或其子类调整内边距,从而导致位置不准确。设置self.automaticallyAdjustsScrollViewInsets = NO;或者controller中放置不止一个scrollView或其子类时,就不会出现这种问题。以上原因是我的猜测,只要我设置了 self.automaticallyAdjustsScrollViewInsets = NO就没有那个问题了。
+ 
+#PS:
+ 
+ 如需更详细的设置,参考如下:
+ 
+ 1. cycleScrollView.pageControlAliment = SDCycleScrollViewPageContolAlimentRight; // 设置pageControl居右,默认居中
+ 
+ 2. cycleScrollView.titlesGroup =  标题数组(数组元素个数必须和图片数组元素个数保持一致); // 如果设置title数组,则会在图片下面添加标题
+ 
+ 3. cycleScrollView.delegate = ; // 如需监听图片点击,请设置代理,实现代理方法
+ 
+ 4. cycleScrollView.autoScrollTimeInterval = ;// 自定义轮播时间间隔 
+
+![](http://ww4.sinaimg.cn/bmiddle/9b8146edjw1esvytq7lwrg208p0fce82.gif)
+
+![](http://cdn.cocimg.com/bbs/attachment/Fid_19/19_441660_d01407e9c4b63d1.gif)

+ 24 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.h

@@ -0,0 +1,24 @@
+//
+//  TAAbstractDotView.h
+//  TAPageControl
+//
+//  Created by Tanguy Aladenise on 2015-01-22.
+//  Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+
+@interface TAAbstractDotView : UIView
+
+
+/**
+ *  A method call let view know which state appearance it should take. Active meaning it's current page. Inactive not the current page.
+ *
+ *  @param active BOOL to tell if view is active or not
+ */
+- (void)changeActivityState:(BOOL)active;
+
+
+@end
+

+ 30 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAbstractDotView.m

@@ -0,0 +1,30 @@
+//
+//  TAAbstractDotView.m
+//  TAPageControl
+//
+//  Created by Tanguy Aladenise on 2015-01-22.
+//  Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
+//
+
+#import "TAAbstractDotView.h"
+
+
+@implementation TAAbstractDotView
+
+
+- (id)init
+{
+    @throw [NSException exceptionWithName:NSInternalInconsistencyException
+                                   reason:[NSString stringWithFormat:@"You must override %@ in %@", NSStringFromSelector(_cmd), self.class]
+                                 userInfo:nil];
+}
+
+
+- (void)changeActivityState:(BOOL)active
+{
+    @throw [NSException exceptionWithName:NSInternalInconsistencyException
+                                   reason:[NSString stringWithFormat:@"You must override %@ in %@", NSStringFromSelector(_cmd), self.class]
+                                 userInfo:nil];
+}
+
+@end

+ 15 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.h

@@ -0,0 +1,15 @@
+//
+//  TAAnimatedDotView.h
+//  TAPageControl
+//
+//  Created by Tanguy Aladenise on 2015-01-22.
+//  Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
+//
+
+#import "TAAbstractDotView.h"
+
+@interface TAAnimatedDotView : TAAbstractDotView
+
+@property (nonatomic, strong) UIColor *dotColor;
+
+@end

+ 88 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAAnimatedDotView.m

@@ -0,0 +1,88 @@
+//
+//  TAAnimatedDotView.m
+//  TAPageControl
+//
+//  Created by Tanguy Aladenise on 2015-01-22.
+//  Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
+//
+
+#import "TAAnimatedDotView.h"
+
+static CGFloat const kAnimateDuration = 1;
+
+@implementation TAAnimatedDotView
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        [self initialization];
+    }
+    
+    return self;
+}
+
+
+- (id)initWithFrame:(CGRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self initialization];
+    }
+    return self;
+}
+
+
+- (id)initWithCoder:(NSCoder *)aDecoder
+{
+    self = [super initWithCoder:aDecoder];
+    if (self) {
+        [self initialization];
+    }
+    
+    return self;
+}
+
+- (void)setDotColor:(UIColor *)dotColor
+{
+    _dotColor = dotColor;
+    self.layer.borderColor  = dotColor.CGColor;
+}
+
+- (void)initialization
+{
+    _dotColor = [UIColor whiteColor];
+    self.backgroundColor    = [UIColor clearColor];
+    self.layer.cornerRadius = CGRectGetWidth(self.frame) / 2;
+    self.layer.borderColor  = [UIColor whiteColor].CGColor;
+    self.layer.borderWidth  = 2;
+}
+
+
+- (void)changeActivityState:(BOOL)active
+{
+    if (active) {
+        [self animateToActiveState];
+    } else {
+        [self animateToDeactiveState];
+    }
+}
+
+
+- (void)animateToActiveState
+{
+    [UIView animateWithDuration:kAnimateDuration delay:0 usingSpringWithDamping:.5 initialSpringVelocity:-20 options:UIViewAnimationOptionCurveLinear animations:^{
+        self.backgroundColor = self->_dotColor;
+        self.transform = CGAffineTransformMakeScale(1.4, 1.4);
+    } completion:nil];
+}
+
+- (void)animateToDeactiveState
+{
+    [UIView animateWithDuration:kAnimateDuration delay:0 usingSpringWithDamping:.5 initialSpringVelocity:0 options:UIViewAnimationOptionCurveLinear animations:^{
+        self.backgroundColor = [UIColor clearColor];
+        self.transform = CGAffineTransformIdentity;
+    } completion:nil];
+}
+
+@end

+ 13 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.h

@@ -0,0 +1,13 @@
+//
+//  TADotView.h
+//  TAPageControl
+//
+//  Created by Tanguy Aladenise on 2015-01-22.
+//  Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
+//
+
+#import "TAAbstractDotView.h"
+
+@interface TADotView : TAAbstractDotView
+
+@end

+ 63 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TADotView.m

@@ -0,0 +1,63 @@
+//
+//  TADotView.m
+//  TAPageControl
+//
+//  Created by Tanguy Aladenise on 2015-01-22.
+//  Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
+//
+
+#import "TADotView.h"
+
+@implementation TADotView
+
+
+- (instancetype)init
+{
+    self = [super init];
+    if (self) {
+        [self initialization];
+    }
+    
+    return self;
+}
+
+
+- (id)initWithFrame:(CGRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self initialization];
+    }
+    return self;
+}
+
+
+- (id)initWithCoder:(NSCoder *)aDecoder
+{
+    self = [super initWithCoder:aDecoder];
+    if (self) {
+        [self initialization];
+    }
+    
+    return self;
+}
+
+- (void)initialization
+{
+    self.backgroundColor    = [UIColor clearColor];
+    self.layer.cornerRadius = CGRectGetWidth(self.frame) / 2;
+    self.layer.borderColor  = [UIColor whiteColor].CGColor;
+    self.layer.borderWidth  = 2;
+}
+
+
+- (void)changeActivityState:(BOOL)active
+{
+    if (active) {
+        self.backgroundColor = [UIColor whiteColor];
+    } else {
+        self.backgroundColor = [UIColor clearColor];
+    }
+}
+
+@end

+ 106 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.h

@@ -0,0 +1,106 @@
+//
+//  TAPageControl.h
+//  TAPageControl
+//
+//  Created by Tanguy Aladenise on 2015-01-21.
+//  Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@protocol TAPageControlDelegate;
+
+
+@interface TAPageControl : UIControl
+
+
+/**
+ * Dot view customization properties
+ */
+
+/**
+ *  The Class of your custom UIView, make sure to respect the TAAbstractDotView class.
+ */
+@property (nonatomic) Class dotViewClass;
+
+
+/**
+ *  UIImage to represent a dot.
+ */
+@property (nonatomic) UIImage *dotImage;
+
+
+/**
+ *  UIImage to represent current page dot.
+ */
+@property (nonatomic) UIImage *currentDotImage;
+
+
+/**
+ *  Dot size for dot views. Default is 8 by 8.
+ */
+@property (nonatomic) CGSize dotSize;
+
+
+@property (nonatomic, strong) UIColor *dotColor;
+
+/**
+ *  Spacing between two dot views. Default is 8.
+ */
+@property (nonatomic) NSInteger spacingBetweenDots;
+
+
+/**
+ * Page control setup properties
+ */
+
+
+/**
+ * Delegate for TAPageControl
+ */
+@property(nonatomic,assign) id<TAPageControlDelegate> delegate;
+
+
+/**
+ *  Number of pages for control. Default is 0.
+ */
+@property (nonatomic) NSInteger numberOfPages;
+
+
+/**
+ *  Current page on which control is active. Default is 0.
+ */
+@property (nonatomic) NSInteger currentPage;
+
+
+/**
+ *  Hide the control if there is only one page. Default is NO.
+ */
+@property (nonatomic) BOOL hidesForSinglePage;
+
+
+/**
+ *  Let the control know if should grow bigger by keeping center, or just get longer (right side expanding). By default YES.
+ */
+@property (nonatomic) BOOL shouldResizeFromCenter;
+
+
+/**
+ *  Return the minimum size required to display control properly for the given page count.
+ *
+ *  @param pageCount Number of dots that will require display
+ *
+ *  @return The CGSize being the minimum size required.
+ */
+- (CGSize)sizeForNumberOfPages:(NSInteger)pageCount;
+
+
+@end
+
+
+@protocol TAPageControlDelegate <NSObject>
+
+@optional
+- (void)TAPageControl:(TAPageControl *)pageControl didSelectPageAtIndex:(NSInteger)index;
+
+@end

+ 364 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/PageControl/TAPageControl.m

@@ -0,0 +1,364 @@
+//
+//  TAPageControl.m
+//  TAPageControl
+//
+//  Created by Tanguy Aladenise on 2015-01-21.
+//  Copyright (c) 2015 Tanguy Aladenise. All rights reserved.
+//
+
+#import "TAPageControl.h"
+#import "TAAbstractDotView.h"
+#import "TAAnimatedDotView.h"
+#import "TADotView.h"
+
+/**
+ *  Default number of pages for initialization
+ */
+static NSInteger const kDefaultNumberOfPages = 0;
+
+/**
+ *  Default current page for initialization
+ */
+static NSInteger const kDefaultCurrentPage = 0;
+
+/**
+ *  Default setting for hide for single page feature. For initialization
+ */
+static BOOL const kDefaultHideForSinglePage = NO;
+
+/**
+ *  Default setting for shouldResizeFromCenter. For initialiation
+ */
+static BOOL const kDefaultShouldResizeFromCenter = YES;
+
+/**
+ *  Default spacing between dots
+ */
+static NSInteger const kDefaultSpacingBetweenDots = 8;
+
+/**
+ *  Default dot size
+ */
+static CGSize const kDefaultDotSize = {8, 8};
+
+
+@interface TAPageControl()
+
+
+/**
+ *  Array of dot views for reusability and touch events.
+ */
+@property (strong, nonatomic) NSMutableArray *dots;
+
+
+@end
+
+@implementation TAPageControl
+
+
+#pragma mark - Lifecycle
+
+
+- (id)init
+{
+    self = [super init];
+    if (self) {
+        [self initialization];
+    }
+    
+    return self;
+}
+
+
+- (id)initWithFrame:(CGRect)frame
+{
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self initialization];
+    }
+    return self;
+}
+
+
+- (id)initWithCoder:(NSCoder *)aDecoder
+{
+    self = [super initWithCoder:aDecoder];
+    if (self) {
+        [self initialization];
+    }
+    
+    return self;
+}
+
+
+/**
+ *  Default setup when initiating control
+ */
+- (void)initialization
+{
+    self.dotViewClass           = [TAAnimatedDotView class];
+    self.spacingBetweenDots     = kDefaultSpacingBetweenDots;
+    self.numberOfPages          = kDefaultNumberOfPages;
+    self.currentPage            = kDefaultCurrentPage;
+    self.hidesForSinglePage     = kDefaultHideForSinglePage;
+    self.shouldResizeFromCenter = kDefaultShouldResizeFromCenter;
+}
+
+
+#pragma mark - Touch event
+
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
+{
+    UITouch *touch = [touches anyObject];
+    if (touch.view != self) {
+        NSInteger index = [self.dots indexOfObject:touch.view];
+        if ([self.delegate respondsToSelector:@selector(TAPageControl:didSelectPageAtIndex:)]) {
+            [self.delegate TAPageControl:self didSelectPageAtIndex:index];
+        }
+    }
+}
+
+#pragma mark - Layout
+
+
+/**
+ *  Resizes and moves the receiver view so it just encloses its subviews.
+ */
+- (void)sizeToFit
+{
+    [self updateFrame:YES];
+}
+
+
+- (CGSize)sizeForNumberOfPages:(NSInteger)pageCount
+{
+    return CGSizeMake((self.dotSize.width + self.spacingBetweenDots) * pageCount - self.spacingBetweenDots , self.dotSize.height);
+}
+
+
+/**
+ *  Will update dots display and frame. Reuse existing views or instantiate one if required. Update their position in case frame changed.
+ */
+- (void)updateDots
+{
+    if (self.numberOfPages == 0) {
+        return;
+    }
+    
+    for (NSInteger i = 0; i < self.numberOfPages; i++) {
+        
+        UIView *dot;
+        if (i < self.dots.count) {
+            dot = [self.dots objectAtIndex:i];
+        } else {
+            dot = [self generateDotView];
+        }
+        
+        [self updateDotFrame:dot atIndex:i];
+    }
+    
+    [self changeActivity:YES atIndex:self.currentPage];
+    
+    [self hideForSinglePage];
+}
+
+
+/**
+ *  Update frame control to fit current number of pages. It will apply required size if authorize and required.
+ *
+ *  @param overrideExistingFrame BOOL to allow frame to be overriden. Meaning the required size will be apply no mattter what.
+ */
+- (void)updateFrame:(BOOL)overrideExistingFrame
+{
+    CGPoint center = self.center;
+    CGSize requiredSize = [self sizeForNumberOfPages:self.numberOfPages];
+    
+    // We apply requiredSize only if authorize to and necessary
+    if (overrideExistingFrame || ((CGRectGetWidth(self.frame) < requiredSize.width || CGRectGetHeight(self.frame) < requiredSize.height) && !overrideExistingFrame)) {
+        self.frame = CGRectMake(CGRectGetMinX(self.frame), CGRectGetMinY(self.frame), requiredSize.width, requiredSize.height);
+        if (self.shouldResizeFromCenter) {
+            self.center = center;
+        }
+    }
+    
+    [self resetDotViews];
+}
+
+
+/**
+ *  Update the frame of a specific dot at a specific index
+ *
+ *  @param dot   Dot view
+ *  @param index Page index of dot
+ */
+- (void)updateDotFrame:(UIView *)dot atIndex:(NSInteger)index
+{
+    // Dots are always centered within view
+    CGFloat x = (self.dotSize.width + self.spacingBetweenDots) * index + ( (CGRectGetWidth(self.frame) - [self sizeForNumberOfPages:self.numberOfPages].width) / 2);
+    CGFloat y = (CGRectGetHeight(self.frame) - self.dotSize.height) / 2;
+    
+    dot.frame = CGRectMake(x, y, self.dotSize.width, self.dotSize.height);
+}
+
+
+#pragma mark - Utils
+
+
+/**
+ *  Generate a dot view and add it to the collection
+ *
+ *  @return The UIView object representing a dot
+ */
+- (UIView *)generateDotView
+{
+    UIView *dotView;
+    
+    if (self.dotViewClass) {
+        dotView = [[self.dotViewClass alloc] initWithFrame:CGRectMake(0, 0, self.dotSize.width, self.dotSize.height)];
+        if ([dotView isKindOfClass:[TAAnimatedDotView class]] && self.dotColor) {
+            ((TAAnimatedDotView *)dotView).dotColor = self.dotColor;
+        }
+    } else {
+        dotView = [[UIImageView alloc] initWithImage:self.dotImage];
+        dotView.frame = CGRectMake(0, 0, self.dotSize.width, self.dotSize.height);
+    }
+    
+    if (dotView) {
+        [self addSubview:dotView];
+        [self.dots addObject:dotView];
+    }
+    
+    dotView.userInteractionEnabled = YES;    
+    return dotView;
+}
+
+
+/**
+ *  Change activity state of a dot view. Current/not currrent.
+ *
+ *  @param active Active state to apply
+ *  @param index  Index of dot for state update
+ */
+- (void)changeActivity:(BOOL)active atIndex:(NSInteger)index
+{
+    if (self.dotViewClass) {
+        TAAbstractDotView *abstractDotView = (TAAbstractDotView *)[self.dots objectAtIndex:index];
+        if ([abstractDotView respondsToSelector:@selector(changeActivityState:)]) {
+            [abstractDotView changeActivityState:active];
+        } else {
+            NSLog(@"Custom view : %@ must implement an 'changeActivityState' method or you can subclass %@ to help you.", self.dotViewClass, [TAAbstractDotView class]);
+        }
+    } else if (self.dotImage && self.currentDotImage) {
+        UIImageView *dotView = (UIImageView *)[self.dots objectAtIndex:index];
+        dotView.image = (active) ? self.currentDotImage : self.dotImage;
+    }
+}
+
+
+- (void)resetDotViews
+{
+    for (UIView *dotView in self.dots) {
+        [dotView removeFromSuperview];
+    }
+    
+    [self.dots removeAllObjects];
+    [self updateDots];
+}
+
+
+- (void)hideForSinglePage
+{
+    if (self.dots.count == 1 && self.hidesForSinglePage) {
+        self.hidden = YES;
+    } else {
+        self.hidden = NO;
+    }
+}
+
+#pragma mark - Setters
+
+
+- (void)setNumberOfPages:(NSInteger)numberOfPages
+{
+    _numberOfPages = numberOfPages;
+    
+    // Update dot position to fit new number of pages
+    [self resetDotViews];
+}
+
+
+- (void)setSpacingBetweenDots:(NSInteger)spacingBetweenDots
+{
+    _spacingBetweenDots = spacingBetweenDots;
+    
+    [self resetDotViews];
+}
+
+
+- (void)setCurrentPage:(NSInteger)currentPage
+{
+    // If no pages, no current page to treat.
+    if (self.numberOfPages == 0 || currentPage == _currentPage) {
+        _currentPage = currentPage;
+        return;
+    }
+    
+    // Pre set
+    [self changeActivity:NO atIndex:_currentPage];
+    _currentPage = currentPage;
+    // Post set
+    [self changeActivity:YES atIndex:_currentPage];
+}
+
+
+- (void)setDotImage:(UIImage *)dotImage
+{
+    _dotImage = dotImage;
+    [self resetDotViews];
+    self.dotViewClass = nil;
+}
+
+
+- (void)setCurrentDotImage:(UIImage *)currentDotimage
+{
+    _currentDotImage = currentDotimage;
+    [self resetDotViews];
+    self.dotViewClass = nil;
+}
+
+
+- (void)setDotViewClass:(Class)dotViewClass
+{
+    _dotViewClass = dotViewClass;
+    self.dotSize = CGSizeZero;
+    [self resetDotViews];
+}
+
+
+#pragma mark - Getters
+
+
+- (NSMutableArray *)dots
+{
+    if (!_dots) {
+        _dots = [[NSMutableArray alloc] init];
+    }
+    
+    return _dots;
+}
+
+
+- (CGSize)dotSize
+{
+    // Dot size logic depending on the source of the dot view
+    if (self.dotImage && CGSizeEqualToSize(_dotSize, CGSizeZero)) {
+        _dotSize = self.dotImage.size;
+    } else if (self.dotViewClass && CGSizeEqualToSize(_dotSize, CGSizeZero)) {
+        _dotSize = kDefaultDotSize;
+        return _dotSize;
+    }
+    
+    return _dotSize;
+}
+
+@end

+ 51 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.h

@@ -0,0 +1,51 @@
+//
+//  SDCollectionViewCell.h
+//  SDCycleScrollView
+//
+//  Created by aier on 15-3-22.
+//  Copyright (c) 2015年 GSD. All rights reserved.
+//
+
+/*
+ 
+ *********************************************************************************
+ *
+ * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
+ *
+ * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
+ * 帮您解决问题。
+ * 新浪微博:GSD_iOS
+ * Email : gsdios@126.com
+ * GitHub: https://github.com/gsdios
+ *
+ * 另(我的自动布局库SDAutoLayout):
+ *  一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
+ *  做最简单易用的AutoLayout库。
+ * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
+ * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
+ * GitHub:https://github.com/gsdios/SDAutoLayout
+ *********************************************************************************
+ 
+ */
+
+
+
+#import <UIKit/UIKit.h>
+
+@interface SDCollectionViewCell : UICollectionViewCell
+
+@property (weak, nonatomic) UIImageView *imageView;
+@property (copy, nonatomic) NSString *title;
+
+@property (nonatomic, strong) UIColor *titleLabelTextColor;
+@property (nonatomic, strong) UIFont *titleLabelTextFont;
+@property (nonatomic, strong) UIColor *titleLabelBackgroundColor;
+@property (nonatomic, assign) CGFloat titleLabelHeight;
+@property (nonatomic, assign) NSTextAlignment titleLabelTextAlignment;
+
+@property (nonatomic, assign) BOOL hasConfigured;
+
+/** 只展示文字轮播 */
+@property (nonatomic, assign) BOOL onlyDisplayText;
+
+@end

+ 116 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCollectionViewCell.m

@@ -0,0 +1,116 @@
+//
+//  SDCollectionViewCell.m
+//  SDCycleScrollView
+//
+//  Created by aier on 15-3-22.
+//  Copyright (c) 2015年 GSD. All rights reserved.
+//
+
+
+/*
+ 
+ *********************************************************************************
+ *
+ * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
+ *
+ * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
+ * 帮您解决问题。
+ * 新浪微博:GSD_iOS
+ * Email : gsdios@126.com
+ * GitHub: https://github.com/gsdios
+ *
+ * 另(我的自动布局库SDAutoLayout):
+ *  一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
+ *  做最简单易用的AutoLayout库。
+ * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
+ * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
+ * GitHub:https://github.com/gsdios/SDAutoLayout
+ *********************************************************************************
+ 
+ */
+
+
+#import "SDCollectionViewCell.h"
+#import "UIView+SDExtension.h"
+
+@implementation SDCollectionViewCell
+{
+    __weak UILabel *_titleLabel;
+}
+
+
+- (instancetype)initWithFrame:(CGRect)frame
+{
+    if (self = [super initWithFrame:frame]) {
+        [self setupImageView];
+        [self setupTitleLabel];
+    }
+    
+    return self;
+}
+
+- (void)setTitleLabelBackgroundColor:(UIColor *)titleLabelBackgroundColor
+{
+    _titleLabelBackgroundColor = titleLabelBackgroundColor;
+    _titleLabel.backgroundColor = titleLabelBackgroundColor;
+}
+
+- (void)setTitleLabelTextColor:(UIColor *)titleLabelTextColor
+{
+    _titleLabelTextColor = titleLabelTextColor;
+    _titleLabel.textColor = titleLabelTextColor;
+}
+
+- (void)setTitleLabelTextFont:(UIFont *)titleLabelTextFont
+{
+    _titleLabelTextFont = titleLabelTextFont;
+    _titleLabel.font = titleLabelTextFont;
+}
+
+- (void)setupImageView
+{
+    UIImageView *imageView = [[UIImageView alloc] init];
+    _imageView = imageView;
+    [self.contentView addSubview:imageView];
+}
+
+- (void)setupTitleLabel
+{
+    UILabel *titleLabel = [[UILabel alloc] init];
+    _titleLabel = titleLabel;
+    _titleLabel.hidden = YES;
+    [self.contentView addSubview:titleLabel];
+}
+
+- (void)setTitle:(NSString *)title
+{
+    _title = [title copy];
+    _titleLabel.text = [NSString stringWithFormat:@"   %@", title];
+    if (_titleLabel.hidden) {
+        _titleLabel.hidden = NO;
+    }
+}
+
+-(void)setTitleLabelTextAlignment:(NSTextAlignment)titleLabelTextAlignment
+{
+    _titleLabelTextAlignment = titleLabelTextAlignment;
+    _titleLabel.textAlignment = titleLabelTextAlignment;
+}
+
+- (void)layoutSubviews
+{
+    [super layoutSubviews];
+    
+    if (self.onlyDisplayText) {
+        _titleLabel.frame = self.bounds;
+    } else {
+        _imageView.frame = self.bounds;
+        CGFloat titleLabelW = self.sd_width;
+        CGFloat titleLabelH = _titleLabelHeight;
+        CGFloat titleLabelX = 0;
+        CGFloat titleLabelY = self.sd_height - titleLabelH;
+        _titleLabel.frame = CGRectMake(titleLabelX, titleLabelY, titleLabelW, titleLabelH);
+    }
+}
+
+@end

+ 211 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.h

@@ -0,0 +1,211 @@
+//
+//  SDCycleScrollView.h
+//  SDCycleScrollView
+//
+//  Created by aier on 15-3-22.
+//  Copyright (c) 2015年 GSD. All rights reserved.
+//
+
+/*
+ 
+ *********************************************************************************
+ *
+ * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
+ *
+ * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
+ * 帮您解决问题。
+ * 新浪微博:GSD_iOS
+ * Email : gsdios@126.com
+ * GitHub: https://github.com/gsdios
+ *
+ * 另(我的自动布局库SDAutoLayout):
+ *  一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
+ *  做最简单易用的AutoLayout库。
+ * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
+ * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
+ * GitHub:https://github.com/gsdios/SDAutoLayout
+ *********************************************************************************
+ 
+ */
+
+/*
+ * 当前版本为1.62
+ * 更新日期:2016.04.21
+ */
+
+#import <UIKit/UIKit.h>
+
+typedef enum {
+    SDCycleScrollViewPageContolAlimentRight,
+    SDCycleScrollViewPageContolAlimentCenter
+} SDCycleScrollViewPageContolAliment;
+
+typedef enum {
+    SDCycleScrollViewPageContolStyleClassic,        // 系统自带经典样式
+    SDCycleScrollViewPageContolStyleAnimated,       // 动画效果pagecontrol
+    SDCycleScrollViewPageContolStyleNone            // 不显示pagecontrol
+} SDCycleScrollViewPageContolStyle;
+
+@class SDCycleScrollView;
+
+@protocol SDCycleScrollViewDelegate <NSObject>
+
+@optional
+
+/** 点击图片回调 */
+- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index;
+
+/** 图片滚动回调 */
+- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index;
+
+
+
+
+
+
+// 不需要自定义轮播cell的请忽略以下两个的代理方法
+
+// ========== 轮播自定义cell ==========
+
+/** 如果你需要自定义cell样式,请在实现此代理方法返回你的自定义cell的class。 */
+- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view;
+
+/** 如果你需要自定义cell样式,请在实现此代理方法返回你的自定义cell的Nib。 */
+- (UINib *)customCollectionViewCellNibForCycleScrollView:(SDCycleScrollView *)view;
+
+/** 如果你自定义了cell样式,请在实现此代理方法为你的cell填充数据以及其它一系列设置 */
+- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleScrollView:(SDCycleScrollView *)view;
+
+@end
+
+@interface SDCycleScrollView : UIView
+
+
+/** 初始轮播图(推荐使用) */
++ (instancetype)cycleScrollViewWithFrame:(CGRect)frame delegate:(id<SDCycleScrollViewDelegate>)delegate placeholderImage:(UIImage *)placeholderImage;
+
++ (instancetype)cycleScrollViewWithFrame:(CGRect)frame imageURLStringsGroup:(NSArray *)imageURLStringsGroup;
+
+
+/** 本地图片轮播初始化方式 */
++ (instancetype)cycleScrollViewWithFrame:(CGRect)frame imageNamesGroup:(NSArray *)imageNamesGroup;
+
+/** 本地图片轮播初始化方式2,infiniteLoop:是否无限循环 */
++ (instancetype)cycleScrollViewWithFrame:(CGRect)frame shouldInfiniteLoop:(BOOL)infiniteLoop imageNamesGroup:(NSArray *)imageNamesGroup;
+
+
+//////////////////////  数据源API //////////////////////
+
+/** 网络图片 url string 数组 */
+@property (nonatomic, strong) NSArray *imageURLStringsGroup;
+
+/** 每张图片对应要显示的文字数组 */
+@property (nonatomic, strong) NSArray *titlesGroup;
+
+/** 本地图片数组 */
+@property (nonatomic, strong) NSArray *localizationImageNamesGroup;
+
+
+
+
+
+//////////////////////  滚动控制API //////////////////////
+
+/** 自动滚动间隔时间,默认2s */
+@property (nonatomic, assign) CGFloat autoScrollTimeInterval;
+
+/** 是否无限循环,默认Yes */
+@property (nonatomic,assign) BOOL infiniteLoop;
+
+/** 是否自动滚动,默认Yes */
+@property (nonatomic,assign) BOOL autoScroll;
+
+/** 图片滚动方向,默认为水平滚动 */
+@property (nonatomic, assign) UICollectionViewScrollDirection scrollDirection;
+
+@property (nonatomic, weak) id<SDCycleScrollViewDelegate> delegate;
+
+/** block方式监听点击 */
+@property (nonatomic, copy) void (^clickItemOperationBlock)(NSInteger currentIndex);
+
+/** block方式监听滚动 */
+@property (nonatomic, copy) void (^itemDidScrollOperationBlock)(NSInteger currentIndex);
+
+/** 可以调用此方法手动控制滚动到哪一个index */
+- (void)makeScrollViewScrollToIndex:(NSInteger)index;
+
+/** 解决viewWillAppear时出现时轮播图卡在一半的问题,在控制器viewWillAppear时调用此方法 */
+- (void)adjustWhenControllerViewWillAppera;
+
+//////////////////////  自定义样式API  //////////////////////
+
+/** 轮播图片的ContentMode,默认为 UIViewContentModeScaleToFill */
+@property (nonatomic, assign) UIViewContentMode bannerImageViewContentMode;
+
+/** 占位图,用于网络未加载到图片时 */
+@property (nonatomic, strong) UIImage *placeholderImage;
+
+/** 是否显示分页控件 */
+@property (nonatomic, assign) BOOL showPageControl;
+
+/** 是否在只有一张图时隐藏pagecontrol,默认为YES */
+@property(nonatomic) BOOL hidesForSinglePage;
+
+/** 只展示文字轮播 */
+@property (nonatomic, assign) BOOL onlyDisplayText;
+
+/** pagecontrol 样式,默认为动画样式 */
+@property (nonatomic, assign) SDCycleScrollViewPageContolStyle pageControlStyle;
+
+/** 分页控件位置 */
+@property (nonatomic, assign) SDCycleScrollViewPageContolAliment pageControlAliment;
+
+/** 分页控件距离轮播图的底部间距(在默认间距基础上)的偏移量 */
+@property (nonatomic, assign) CGFloat pageControlBottomOffset;
+
+/** 分页控件距离轮播图的右边间距(在默认间距基础上)的偏移量 */
+@property (nonatomic, assign) CGFloat pageControlRightOffset;
+
+/** 分页控件小圆标大小 */
+@property (nonatomic, assign) CGSize pageControlDotSize;
+
+/** 当前分页控件小圆标颜色 */
+@property (nonatomic, strong) UIColor *currentPageDotColor;
+
+/** 其他分页控件小圆标颜色 */
+@property (nonatomic, strong) UIColor *pageDotColor;
+
+/** 当前分页控件小圆标图片 */
+@property (nonatomic, strong) UIImage *currentPageDotImage;
+
+/** 其他分页控件小圆标图片 */
+@property (nonatomic, strong) UIImage *pageDotImage;
+
+/** 轮播文字label字体颜色 */
+@property (nonatomic, strong) UIColor *titleLabelTextColor;
+
+/** 轮播文字label字体大小 */
+@property (nonatomic, strong) UIFont  *titleLabelTextFont;
+
+/** 轮播文字label背景颜色 */
+@property (nonatomic, strong) UIColor *titleLabelBackgroundColor;
+
+/** 轮播文字label高度 */
+@property (nonatomic, assign) CGFloat titleLabelHeight;
+
+/** 轮播文字label对齐方式 */
+@property (nonatomic, assign) NSTextAlignment titleLabelTextAlignment;
+
+/** 滚动手势禁用(文字轮播较实用) */
+- (void)disableScrollGesture;
+
+
+//////////////////////  清除缓存API  //////////////////////
+
+/** 清除图片缓存(此次升级后统一使用SDWebImage管理图片加载和缓存)  */
++ (void)clearImagesCache;
+
+/** 清除图片缓存(兼容旧版本方法) */
+- (void)clearCache;
+
+@end

+ 700 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/SDCycleScrollView.m

@@ -0,0 +1,700 @@
+//
+//  SDCycleScrollView.m
+//  SDCycleScrollView
+//
+//  Created by aier on 15-3-22.
+//  Copyright (c) 2015年 GSD. All rights reserved.
+//
+
+/*
+ 
+ *********************************************************************************
+ *
+ * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
+ *
+ * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
+ * 帮您解决问题。
+ * 新浪微博:GSD_iOS
+ * Email : gsdios@126.com
+ * GitHub: https://github.com/gsdios
+ *
+ * 另(我的自动布局库SDAutoLayout):
+ *  一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
+ *  做最简单易用的AutoLayout库。
+ * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
+ * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
+ * GitHub:https://github.com/gsdios/SDAutoLayout
+ *********************************************************************************
+ 
+ */
+
+
+#import "SDCycleScrollView.h"
+#import "SDCollectionViewCell.h"
+#import "UIView+SDExtension.h"
+#import "TAPageControl.h"
+#import "SDWebImageManager.h"
+#import "UIImageView+WebCache.h"
+
+#define kCycleScrollViewInitialPageControlDotSize CGSizeMake(10, 10)
+
+NSString * const ID = @"SDCycleScrollViewCell";
+
+@interface SDCycleScrollView () <UICollectionViewDataSource, UICollectionViewDelegate>
+
+
+@property (nonatomic, weak) UICollectionView *mainView; // 显示图片的collectionView
+@property (nonatomic, weak) UICollectionViewFlowLayout *flowLayout;
+@property (nonatomic, strong) NSArray *imagePathsGroup;
+@property (nonatomic, weak) NSTimer *timer;
+@property (nonatomic, assign) NSInteger totalItemsCount;
+@property (nonatomic, weak) UIControl *pageControl;
+
+@property (nonatomic, strong) UIImageView *backgroundImageView; // 当imageURLs为空时的背景图
+
+@end
+
+@implementation SDCycleScrollView
+
+- (instancetype)initWithFrame:(CGRect)frame
+{
+    if (self = [super initWithFrame:frame]) {
+        [self initialization];
+        [self setupMainView];
+    }
+    return self;
+}
+
+- (void)awakeFromNib
+{
+    [super awakeFromNib];
+    [self initialization];
+    [self setupMainView];
+}
+
+- (void)initialization
+{
+    _pageControlAliment = SDCycleScrollViewPageContolAlimentCenter;
+    _autoScrollTimeInterval = 2.0;
+    _titleLabelTextColor = [UIColor whiteColor];
+    _titleLabelTextFont= [UIFont systemFontOfSize:14];
+    _titleLabelBackgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
+    _titleLabelHeight = 30;
+    _titleLabelTextAlignment = NSTextAlignmentLeft;
+    _autoScroll = YES;
+    _infiniteLoop = YES;
+    _showPageControl = YES;
+    _pageControlDotSize = kCycleScrollViewInitialPageControlDotSize;
+    _pageControlBottomOffset = 0;
+    _pageControlRightOffset = 0;
+    _pageControlStyle = SDCycleScrollViewPageContolStyleClassic;
+    _hidesForSinglePage = YES;
+    _currentPageDotColor = [UIColor whiteColor];
+    _pageDotColor = [UIColor lightGrayColor];
+    _bannerImageViewContentMode = UIViewContentModeScaleToFill;
+    
+    self.backgroundColor = [UIColor lightGrayColor];
+    
+}
+
++ (instancetype)cycleScrollViewWithFrame:(CGRect)frame imageNamesGroup:(NSArray *)imageNamesGroup
+{
+    SDCycleScrollView *cycleScrollView = [[self alloc] initWithFrame:frame];
+    cycleScrollView.localizationImageNamesGroup = [NSMutableArray arrayWithArray:imageNamesGroup];
+    return cycleScrollView;
+}
+
++ (instancetype)cycleScrollViewWithFrame:(CGRect)frame shouldInfiniteLoop:(BOOL)infiniteLoop imageNamesGroup:(NSArray *)imageNamesGroup
+{
+    SDCycleScrollView *cycleScrollView = [[self alloc] initWithFrame:frame];
+    cycleScrollView.infiniteLoop = infiniteLoop;
+    cycleScrollView.localizationImageNamesGroup = [NSMutableArray arrayWithArray:imageNamesGroup];
+    return cycleScrollView;
+}
+
++ (instancetype)cycleScrollViewWithFrame:(CGRect)frame imageURLStringsGroup:(NSArray *)imageURLsGroup
+{
+    SDCycleScrollView *cycleScrollView = [[self alloc] initWithFrame:frame];
+    cycleScrollView.imageURLStringsGroup = [NSMutableArray arrayWithArray:imageURLsGroup];
+    return cycleScrollView;
+}
+
++ (instancetype)cycleScrollViewWithFrame:(CGRect)frame delegate:(id<SDCycleScrollViewDelegate>)delegate placeholderImage:(UIImage *)placeholderImage
+{
+    SDCycleScrollView *cycleScrollView = [[self alloc] initWithFrame:frame];
+    cycleScrollView.delegate = delegate;
+    cycleScrollView.placeholderImage = placeholderImage;
+    
+    return cycleScrollView;
+}
+
+// 设置显示图片的collectionView
+- (void)setupMainView
+{
+    UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
+    flowLayout.minimumLineSpacing = 0;
+    flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+    _flowLayout = flowLayout;
+    
+    UICollectionView *mainView = [[UICollectionView alloc] initWithFrame:self.bounds collectionViewLayout:flowLayout];
+    mainView.backgroundColor = [UIColor clearColor];
+    mainView.pagingEnabled = YES;
+    mainView.showsHorizontalScrollIndicator = NO;
+    mainView.showsVerticalScrollIndicator = NO;
+    [mainView registerClass:[SDCollectionViewCell class] forCellWithReuseIdentifier:ID];
+    
+    mainView.dataSource = self;
+    mainView.delegate = self;
+    mainView.scrollsToTop = NO;
+    [self addSubview:mainView];
+    _mainView = mainView;
+}
+
+
+#pragma mark - properties
+
+- (void)setDelegate:(id<SDCycleScrollViewDelegate>)delegate
+{
+    _delegate = delegate;
+    
+    if ([self.delegate respondsToSelector:@selector(customCollectionViewCellClassForCycleScrollView:)] && [self.delegate customCollectionViewCellClassForCycleScrollView:self]) {
+        [self.mainView registerClass:[self.delegate customCollectionViewCellClassForCycleScrollView:self] forCellWithReuseIdentifier:ID];
+    }else if ([self.delegate respondsToSelector:@selector(customCollectionViewCellNibForCycleScrollView:)] && [self.delegate customCollectionViewCellNibForCycleScrollView:self]) {
+        [self.mainView registerNib:[self.delegate customCollectionViewCellNibForCycleScrollView:self] forCellWithReuseIdentifier:ID];
+    }
+}
+
+- (void)setPlaceholderImage:(UIImage *)placeholderImage
+{
+    _placeholderImage = placeholderImage;
+    
+    if (!self.backgroundImageView) {
+        UIImageView *bgImageView = [UIImageView new];
+        bgImageView.contentMode = UIViewContentModeScaleAspectFit;
+        [self insertSubview:bgImageView belowSubview:self.mainView];
+        self.backgroundImageView = bgImageView;
+    }
+    
+    self.backgroundImageView.image = placeholderImage;
+}
+
+- (void)setPageControlDotSize:(CGSize)pageControlDotSize
+{
+    _pageControlDotSize = pageControlDotSize;
+    [self setupPageControl];
+    if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
+        TAPageControl *pageContol = (TAPageControl *)_pageControl;
+        pageContol.dotSize = pageControlDotSize;
+    }
+}
+
+- (void)setShowPageControl:(BOOL)showPageControl
+{
+    _showPageControl = showPageControl;
+    
+    _pageControl.hidden = !showPageControl;
+}
+
+- (void)setCurrentPageDotColor:(UIColor *)currentPageDotColor
+{
+    _currentPageDotColor = currentPageDotColor;
+    if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
+        TAPageControl *pageControl = (TAPageControl *)_pageControl;
+        pageControl.dotColor = currentPageDotColor;
+    } else {
+        UIPageControl *pageControl = (UIPageControl *)_pageControl;
+        pageControl.currentPageIndicatorTintColor = currentPageDotColor;
+    }
+    
+}
+
+- (void)setPageDotColor:(UIColor *)pageDotColor
+{
+    _pageDotColor = pageDotColor;
+    
+    if ([self.pageControl isKindOfClass:[UIPageControl class]]) {
+        UIPageControl *pageControl = (UIPageControl *)_pageControl;
+        pageControl.pageIndicatorTintColor = pageDotColor;
+    }
+}
+
+- (void)setCurrentPageDotImage:(UIImage *)currentPageDotImage
+{
+    _currentPageDotImage = currentPageDotImage;
+    
+    if (self.pageControlStyle != SDCycleScrollViewPageContolStyleAnimated) {
+        self.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated;
+    }
+    
+    [self setCustomPageControlDotImage:currentPageDotImage isCurrentPageDot:YES];
+}
+
+- (void)setPageDotImage:(UIImage *)pageDotImage
+{
+    _pageDotImage = pageDotImage;
+    
+    if (self.pageControlStyle != SDCycleScrollViewPageContolStyleAnimated) {
+        self.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated;
+    }
+    
+    [self setCustomPageControlDotImage:pageDotImage isCurrentPageDot:NO];
+}
+
+- (void)setCustomPageControlDotImage:(UIImage *)image isCurrentPageDot:(BOOL)isCurrentPageDot
+{
+    if (!image || !self.pageControl) return;
+    
+    if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
+        TAPageControl *pageControl = (TAPageControl *)_pageControl;
+        if (isCurrentPageDot) {
+            pageControl.currentDotImage = image;
+        } else {
+            pageControl.dotImage = image;
+        }
+    }
+}
+
+- (void)setInfiniteLoop:(BOOL)infiniteLoop
+{
+    _infiniteLoop = infiniteLoop;
+    
+    if (self.imagePathsGroup.count) {
+        self.imagePathsGroup = self.imagePathsGroup;
+    }
+}
+
+-(void)setAutoScroll:(BOOL)autoScroll{
+    _autoScroll = autoScroll;
+    
+    [self invalidateTimer];
+    
+    if (_autoScroll) {
+        [self setupTimer];
+    }
+}
+
+- (void)setScrollDirection:(UICollectionViewScrollDirection)scrollDirection
+{
+    _scrollDirection = scrollDirection;
+    
+    _flowLayout.scrollDirection = scrollDirection;
+}
+
+- (void)setAutoScrollTimeInterval:(CGFloat)autoScrollTimeInterval
+{
+    _autoScrollTimeInterval = autoScrollTimeInterval;
+    
+    [self setAutoScroll:self.autoScroll];
+}
+
+- (void)setPageControlStyle:(SDCycleScrollViewPageContolStyle)pageControlStyle
+{
+    _pageControlStyle = pageControlStyle;
+    
+    [self setupPageControl];
+}
+
+- (void)setImagePathsGroup:(NSArray *)imagePathsGroup
+{
+    [self invalidateTimer];
+    
+    _imagePathsGroup = imagePathsGroup;
+    
+    _totalItemsCount = self.infiniteLoop ? self.imagePathsGroup.count * 100 : self.imagePathsGroup.count;
+    
+    if (imagePathsGroup.count > 1) { // 由于 !=1 包含count == 0等情况
+        self.mainView.scrollEnabled = YES;
+        [self setAutoScroll:self.autoScroll];
+    } else {
+        self.mainView.scrollEnabled = NO;
+        [self invalidateTimer];
+    }
+    
+    [self setupPageControl];
+    [self.mainView reloadData];
+}
+
+- (void)setImageURLStringsGroup:(NSArray *)imageURLStringsGroup
+{
+    _imageURLStringsGroup = imageURLStringsGroup;
+    
+    NSMutableArray *temp = [NSMutableArray new];
+    [_imageURLStringsGroup enumerateObjectsUsingBlock:^(NSString * obj, NSUInteger idx, BOOL * stop) {
+        NSString *urlString;
+        if ([obj isKindOfClass:[NSString class]]) {
+            urlString = obj;
+        } else if ([obj isKindOfClass:[NSURL class]]) {
+            NSURL *url = (NSURL *)obj;
+            urlString = [url absoluteString];
+        }
+        if (urlString) {
+            [temp addObject:urlString];
+        }
+    }];
+    self.imagePathsGroup = [temp copy];
+}
+
+- (void)setLocalizationImageNamesGroup:(NSArray *)localizationImageNamesGroup
+{
+    _localizationImageNamesGroup = localizationImageNamesGroup;
+    self.imagePathsGroup = [localizationImageNamesGroup copy];
+}
+
+- (void)setTitlesGroup:(NSArray *)titlesGroup
+{
+    _titlesGroup = titlesGroup;
+    if (self.onlyDisplayText) {
+        NSMutableArray *temp = [NSMutableArray new];
+        for (int i = 0; i < _titlesGroup.count; i++) {
+            [temp addObject:@""];
+        }
+        self.backgroundColor = [UIColor clearColor];
+        self.imageURLStringsGroup = [temp copy];
+    }
+}
+
+- (void)disableScrollGesture {
+    self.mainView.canCancelContentTouches = NO;
+    for (UIGestureRecognizer *gesture in self.mainView.gestureRecognizers) {
+        if ([gesture isKindOfClass:[UIPanGestureRecognizer class]]) {
+            [self.mainView removeGestureRecognizer:gesture];
+        }
+    }
+}
+
+#pragma mark - actions
+
+- (void)setupTimer
+{
+    [self invalidateTimer]; // 创建定时器前先停止定时器,不然会出现僵尸定时器,导致轮播频率错误
+    
+    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:self.autoScrollTimeInterval target:self selector:@selector(automaticScroll) userInfo:nil repeats:YES];
+    _timer = timer;
+    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
+}
+
+- (void)invalidateTimer
+{
+    [_timer invalidate];
+    _timer = nil;
+}
+
+- (void)setupPageControl
+{
+    if (_pageControl) [_pageControl removeFromSuperview]; // 重新加载数据时调整
+    
+    if (self.imagePathsGroup.count == 0 || self.onlyDisplayText) return;
+    
+    if ((self.imagePathsGroup.count == 1) && self.hidesForSinglePage) return;
+    
+    int indexOnPageControl = [self pageControlIndexWithCurrentCellIndex:[self currentIndex]];
+    
+    switch (self.pageControlStyle) {
+        case SDCycleScrollViewPageContolStyleAnimated:
+        {
+            TAPageControl *pageControl = [[TAPageControl alloc] init];
+            pageControl.numberOfPages = self.imagePathsGroup.count;
+            pageControl.dotColor = self.currentPageDotColor;
+            pageControl.userInteractionEnabled = NO;
+            pageControl.currentPage = indexOnPageControl;
+            [self addSubview:pageControl];
+            _pageControl = pageControl;
+        }
+            break;
+            
+        case SDCycleScrollViewPageContolStyleClassic:
+        {
+            UIPageControl *pageControl = [[UIPageControl alloc] init];
+            pageControl.numberOfPages = self.imagePathsGroup.count;
+            pageControl.currentPageIndicatorTintColor = self.currentPageDotColor;
+            pageControl.pageIndicatorTintColor = self.pageDotColor;
+            pageControl.userInteractionEnabled = NO;
+            pageControl.currentPage = indexOnPageControl;
+            [self addSubview:pageControl];
+            _pageControl = pageControl;
+        }
+            break;
+            
+        default:
+            break;
+    }
+    
+    // 重设pagecontroldot图片
+    if (self.currentPageDotImage) {
+        self.currentPageDotImage = self.currentPageDotImage;
+    }
+    if (self.pageDotImage) {
+        self.pageDotImage = self.pageDotImage;
+    }
+}
+
+
+- (void)automaticScroll
+{
+    if (0 == _totalItemsCount) return;
+    int currentIndex = [self currentIndex];
+    int targetIndex = currentIndex + 1;
+    [self scrollToIndex:targetIndex];
+}
+
+- (void)scrollToIndex:(int)targetIndex
+{
+    if (targetIndex >= _totalItemsCount) {
+        if (self.infiniteLoop) {
+            targetIndex = _totalItemsCount * 0.5;
+            [_mainView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:NO];
+        }
+        return;
+    }
+    [_mainView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:YES];
+}
+
+- (int)currentIndex
+{
+    if (_mainView.sd_width == 0 || _mainView.sd_height == 0) {
+        return 0;
+    }
+    
+    int index = 0;
+    if (_flowLayout.scrollDirection == UICollectionViewScrollDirectionHorizontal) {
+        index = (_mainView.contentOffset.x + _flowLayout.itemSize.width * 0.5) / _flowLayout.itemSize.width;
+    } else {
+        index = (_mainView.contentOffset.y + _flowLayout.itemSize.height * 0.5) / _flowLayout.itemSize.height;
+    }
+    
+    return MAX(0, index);
+}
+
+- (int)pageControlIndexWithCurrentCellIndex:(NSInteger)index
+{
+    return (int)index % self.imagePathsGroup.count;
+}
+
+- (void)clearCache
+{
+    [[self class] clearImagesCache];
+}
+
++ (void)clearImagesCache
+{
+    [[[SDWebImageManager sharedManager] imageCache] clearWithCacheType:SDImageCacheTypeDisk completion:nil];
+}
+
+#pragma mark - life circles
+
+- (void)layoutSubviews
+{
+    self.delegate = self.delegate;
+    
+    [super layoutSubviews];
+    
+    _flowLayout.itemSize = self.frame.size;
+    
+    _mainView.frame = self.bounds;
+    if (_mainView.contentOffset.x == 0 &&  _totalItemsCount) {
+        int targetIndex = 0;
+        if (self.infiniteLoop) {
+            targetIndex = _totalItemsCount * 0.5;
+        }else{
+            targetIndex = 0;
+        }
+        [_mainView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:NO];
+    }
+    
+    CGSize size = CGSizeZero;
+    if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
+        TAPageControl *pageControl = (TAPageControl *)_pageControl;
+        if (!(self.pageDotImage && self.currentPageDotImage && CGSizeEqualToSize(kCycleScrollViewInitialPageControlDotSize, self.pageControlDotSize))) {
+            pageControl.dotSize = self.pageControlDotSize;
+        }
+        size = [pageControl sizeForNumberOfPages:self.imagePathsGroup.count];
+    } else {
+        size = CGSizeMake(self.imagePathsGroup.count * self.pageControlDotSize.width * 1.5, self.pageControlDotSize.height);
+        // ios14 需要按照系统规则适配pageControl size
+        if (@available(iOS 14.0, *)) {
+            if ([self.pageControl isKindOfClass:[UIPageControl class]]) {
+                UIPageControl *pageControl = (UIPageControl *)_pageControl;
+                size.width = [pageControl sizeForNumberOfPages:self.imagePathsGroup.count].width;
+            }
+        }
+    }
+    CGFloat x = (self.sd_width - size.width) * 0.5;
+    if (self.pageControlAliment == SDCycleScrollViewPageContolAlimentRight) {
+        x = self.mainView.sd_width - size.width - 10;
+    }
+    CGFloat y = self.mainView.sd_height - size.height - 10;
+    
+    if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
+        TAPageControl *pageControl = (TAPageControl *)_pageControl;
+        [pageControl sizeToFit];
+    }
+    
+    CGRect pageControlFrame = CGRectMake(x, y, size.width, size.height);
+    pageControlFrame.origin.y -= self.pageControlBottomOffset;
+    pageControlFrame.origin.x -= self.pageControlRightOffset;
+    self.pageControl.frame = pageControlFrame;
+    self.pageControl.hidden = !_showPageControl;
+    
+    if (self.backgroundImageView) {
+        self.backgroundImageView.frame = self.bounds;
+    }
+    
+}
+
+//解决当父View释放时,当前视图因为被Timer强引用而不能释放的问题
+- (void)willMoveToSuperview:(UIView *)newSuperview
+{
+    if (!newSuperview) {
+        [self invalidateTimer];
+    }
+}
+
+//解决当timer释放后 回调scrollViewDidScroll时访问野指针导致崩溃
+- (void)dealloc {
+    _mainView.delegate = nil;
+    _mainView.dataSource = nil;
+}
+
+#pragma mark - public actions
+
+- (void)adjustWhenControllerViewWillAppera
+{
+    long targetIndex = [self currentIndex];
+    if (targetIndex < _totalItemsCount) {
+        [_mainView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:NO];
+    }
+}
+
+
+#pragma mark - UICollectionViewDataSource
+
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
+{
+    return _totalItemsCount;
+}
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    SDCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
+    
+    long itemIndex = [self pageControlIndexWithCurrentCellIndex:indexPath.item];
+    
+    if ([self.delegate respondsToSelector:@selector(setupCustomCell:forIndex:cycleScrollView:)] &&
+        [self.delegate respondsToSelector:@selector(customCollectionViewCellClassForCycleScrollView:)] && [self.delegate customCollectionViewCellClassForCycleScrollView:self]) {
+        [self.delegate setupCustomCell:cell forIndex:itemIndex cycleScrollView:self];
+        return cell;
+    }else if ([self.delegate respondsToSelector:@selector(setupCustomCell:forIndex:cycleScrollView:)] &&
+              [self.delegate respondsToSelector:@selector(customCollectionViewCellNibForCycleScrollView:)] && [self.delegate customCollectionViewCellNibForCycleScrollView:self]) {
+        [self.delegate setupCustomCell:cell forIndex:itemIndex cycleScrollView:self];
+        return cell;
+    }
+    
+    NSString *imagePath = self.imagePathsGroup[itemIndex];
+    
+    if (!self.onlyDisplayText && [imagePath isKindOfClass:[NSString class]]) {
+        if ([imagePath hasPrefix:@"http"]) {
+            [cell.imageView sd_setImageWithURL:[NSURL URLWithString:imagePath] placeholderImage:self.placeholderImage];
+        } else {
+            UIImage *image = [UIImage imageNamed:imagePath];
+            if (!image) {
+                image = [UIImage imageWithContentsOfFile:imagePath];
+            }
+            cell.imageView.image = image;
+        }
+    } else if (!self.onlyDisplayText && [imagePath isKindOfClass:[UIImage class]]) {
+        cell.imageView.image = (UIImage *)imagePath;
+    }
+    
+    if (_titlesGroup.count && itemIndex < _titlesGroup.count) {
+        cell.title = _titlesGroup[itemIndex];
+    }
+    
+    if (!cell.hasConfigured) {
+        cell.titleLabelBackgroundColor = self.titleLabelBackgroundColor;
+        cell.titleLabelHeight = self.titleLabelHeight;
+        cell.titleLabelTextAlignment = self.titleLabelTextAlignment;
+        cell.titleLabelTextColor = self.titleLabelTextColor;
+        cell.titleLabelTextFont = self.titleLabelTextFont;
+        cell.hasConfigured = YES;
+        cell.imageView.contentMode = self.bannerImageViewContentMode;
+        cell.clipsToBounds = YES;
+        cell.onlyDisplayText = self.onlyDisplayText;
+    }
+    
+    return cell;
+}
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    if ([self.delegate respondsToSelector:@selector(cycleScrollView:didSelectItemAtIndex:)]) {
+        [self.delegate cycleScrollView:self didSelectItemAtIndex:[self pageControlIndexWithCurrentCellIndex:indexPath.item]];
+    }
+    if (self.clickItemOperationBlock) {
+        self.clickItemOperationBlock([self pageControlIndexWithCurrentCellIndex:indexPath.item]);
+    }
+}
+
+
+#pragma mark - UIScrollViewDelegate
+
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView
+{
+    if (!self.imagePathsGroup.count) return; // 解决清除timer时偶尔会出现的问题
+    int itemIndex = [self currentIndex];
+    int indexOnPageControl = [self pageControlIndexWithCurrentCellIndex:itemIndex];
+    
+    if ([self.pageControl isKindOfClass:[TAPageControl class]]) {
+        TAPageControl *pageControl = (TAPageControl *)_pageControl;
+        pageControl.currentPage = indexOnPageControl;
+    } else {
+        UIPageControl *pageControl = (UIPageControl *)_pageControl;
+        pageControl.currentPage = indexOnPageControl;
+    }
+}
+
+- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
+{
+    if (self.autoScroll) {
+        [self invalidateTimer];
+    }
+}
+
+- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
+{
+    if (self.autoScroll) {
+        [self setupTimer];
+    }
+}
+
+- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
+{
+    [self scrollViewDidEndScrollingAnimation:self.mainView];
+}
+
+- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
+{
+    if (!self.imagePathsGroup.count) return; // 解决清除timer时偶尔会出现的问题
+    int itemIndex = [self currentIndex];
+    int indexOnPageControl = [self pageControlIndexWithCurrentCellIndex:itemIndex];
+    
+    if ([self.delegate respondsToSelector:@selector(cycleScrollView:didScrollToIndex:)]) {
+        [self.delegate cycleScrollView:self didScrollToIndex:indexOnPageControl];
+    } else if (self.itemDidScrollOperationBlock) {
+        self.itemDidScrollOperationBlock(indexOnPageControl);
+    }
+}
+
+- (void)makeScrollViewScrollToIndex:(NSInteger)index{
+    if (self.autoScroll) {
+        [self invalidateTimer];
+    }
+    if (0 == _totalItemsCount) return;
+    
+    [self scrollToIndex:(int)(_totalItemsCount * 0.5 + index)];
+    
+    if (self.autoScroll) {
+        [self setupTimer];
+    }
+}
+
+@end

+ 44 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.h

@@ -0,0 +1,44 @@
+//
+//  UIView+SDExtension.h
+//  SDRefreshView
+//
+//  Created by aier on 15-2-23.
+//  Copyright (c) 2015年 GSD. All rights reserved.
+//
+
+/*
+ 
+ *********************************************************************************
+ *
+ * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
+ *
+ * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
+ * 帮您解决问题。
+ * 新浪微博:GSD_iOS
+ * Email : gsdios@126.com
+ * GitHub: https://github.com/gsdios
+ *
+ * 另(我的自动布局库SDAutoLayout):
+ *  一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
+ *  做最简单易用的AutoLayout库。
+ * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
+ * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
+ * GitHub:https://github.com/gsdios/SDAutoLayout
+ *********************************************************************************
+ 
+ */
+
+#import <UIKit/UIKit.h>
+
+#define SDColorCreater(r, g, b, a) [UIColor colorWithRed:(r / 255.0) green:(g / 255.0) blue:(b / 255.0) alpha:a]
+
+
+@interface UIView (SDExtension)
+
+@property (nonatomic, assign) CGFloat sd_height;
+@property (nonatomic, assign) CGFloat sd_width;
+
+@property (nonatomic, assign) CGFloat sd_y;
+@property (nonatomic, assign) CGFloat sd_x;
+
+@end

+ 107 - 0
创维盒子/Pods/SDCycleScrollView/SDCycleScrollView/Lib/SDCycleScrollView/UIView+SDExtension.m

@@ -0,0 +1,107 @@
+//
+//  UIView+SDExtension.m
+//  SDRefreshView
+//
+//  Created by aier on 15-2-23.
+//  Copyright (c) 2015年 GSD. All rights reserved.
+//
+
+/*
+ 
+ *********************************************************************************
+ *
+ * 🌟🌟🌟 新建SDCycleScrollView交流QQ群:185534916 🌟🌟🌟
+ *
+ * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
+ * 帮您解决问题。
+ * 新浪微博:GSD_iOS
+ * Email : gsdios@126.com
+ * GitHub: https://github.com/gsdios
+ *
+ * 另(我的自动布局库SDAutoLayout):
+ *  一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
+ *  做最简单易用的AutoLayout库。
+ * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
+ * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
+ * GitHub:https://github.com/gsdios/SDAutoLayout
+ *********************************************************************************
+ 
+ */
+
+/*
+ 
+ *********************************************************************************
+ *
+ * 在您使用此自动轮播库的过程中如果出现bug请及时以以下任意一种方式联系我们,我们会及时修复bug并
+ * 帮您解决问题。
+ * 新浪微博:GSD_iOS
+ * Email : gsdios@126.com
+ * GitHub: https://github.com/gsdios
+ *
+ * 另(我的自动布局库SDAutoLayout):
+ *  一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于
+ *  做最简单易用的AutoLayout库。
+ * 视频教程:http://www.letv.com/ptv/vplay/24038772.html
+ * 用法示例:https://github.com/gsdios/SDAutoLayout/blob/master/README.md
+ * GitHub:https://github.com/gsdios/SDAutoLayout
+ *********************************************************************************
+ 
+ */
+
+
+#import "UIView+SDExtension.h"
+
+@implementation UIView (SDExtension)
+
+- (CGFloat)sd_height
+{
+    return self.frame.size.height;
+}
+
+- (void)setSd_height:(CGFloat)sd_height
+{
+    CGRect temp = self.frame;
+    temp.size.height = sd_height;
+    self.frame = temp;
+}
+
+- (CGFloat)sd_width
+{
+    return self.frame.size.width;
+}
+
+- (void)setSd_width:(CGFloat)sd_width
+{
+    CGRect temp = self.frame;
+    temp.size.width = sd_width;
+    self.frame = temp;
+}
+
+
+- (CGFloat)sd_y
+{
+    return self.frame.origin.y;
+}
+
+- (void)setSd_y:(CGFloat)sd_y
+{
+    CGRect temp = self.frame;
+    temp.origin.y = sd_y;
+    self.frame = temp;
+}
+
+- (CGFloat)sd_x
+{
+    return self.frame.origin.x;
+}
+
+- (void)setSd_x:(CGFloat)sd_x
+{
+    CGRect temp = self.frame;
+    temp.origin.x = sd_x;
+    self.frame = temp;
+}
+
+
+
+@end

File diff suppressed because it is too large
+ 1 - 1
创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.debug.xcconfig


File diff suppressed because it is too large
+ 1 - 1
创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.release.xcconfig


+ 26 - 0
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.markdown

@@ -207,6 +207,32 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 
+## SDCycleScrollView
+
+The MIT License (MIT)
+
+Copyright (c) 2015 GSD_iOS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
 ## SDWebImage
 
 Copyright (c) 2009-2020 Olivier Poitrey rs@dailymotion.com

+ 32 - 0
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.plist

@@ -280,6 +280,38 @@ SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>The MIT License (MIT)
+
+Copyright (c) 2015 GSD_iOS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>SDCycleScrollView</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>Copyright (c) 2009-2020 Olivier Poitrey rs@dailymotion.com
  
 Permission is hereby granted, free of charge, to any person obtaining a copy

File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.debug.xcconfig


File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.release.xcconfig


+ 26 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.markdown

@@ -207,6 +207,32 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 
+## SDCycleScrollView
+
+The MIT License (MIT)
+
+Copyright (c) 2015 GSD_iOS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
 ## SDWebImage
 
 Copyright (c) 2009-2020 Olivier Poitrey rs@dailymotion.com

+ 32 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.plist

@@ -280,6 +280,38 @@ SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>The MIT License (MIT)
+
+Copyright (c) 2015 GSD_iOS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>SDCycleScrollView</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>Copyright (c) 2009-2020 Olivier Poitrey rs@dailymotion.com
  
 Permission is hereby granted, free of charge, to any person obtaining a copy

File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.debug.xcconfig


File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.release.xcconfig


+ 26 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.markdown

@@ -207,6 +207,32 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 
+## SDCycleScrollView
+
+The MIT License (MIT)
+
+Copyright (c) 2015 GSD_iOS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
 ## SDWebImage
 
 Copyright (c) 2009-2020 Olivier Poitrey rs@dailymotion.com

+ 32 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.plist

@@ -280,6 +280,38 @@ SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>The MIT License (MIT)
+
+Copyright (c) 2015 GSD_iOS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>SDCycleScrollView</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>Copyright (c) 2009-2020 Olivier Poitrey rs@dailymotion.com
  
 Permission is hereby granted, free of charge, to any person obtaining a copy

File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.debug.xcconfig


File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.release.xcconfig


+ 5 - 0
创维盒子/Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView-dummy.m

@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+@interface PodsDummy_SDCycleScrollView : NSObject
+@end
+@implementation PodsDummy_SDCycleScrollView
+@end

+ 12 - 0
创维盒子/Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView-prefix.pch

@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+

+ 12 - 0
创维盒子/Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView.debug.xcconfig

@@ -0,0 +1,12 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDCycleScrollView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDCycleScrollView" "${PODS_ROOT}/Headers/Public/SDWebImage"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/SDCycleScrollView
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 12 - 0
创维盒子/Pods/Target Support Files/SDCycleScrollView/SDCycleScrollView.release.xcconfig

@@ -0,0 +1,12 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDCycleScrollView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SDCycleScrollView" "${PODS_ROOT}/Headers/Public/SDWebImage"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/SDCycleScrollView
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES