{
  "name": "SCLoopScrollView",
  "version": "0.4.2",
  "summary": "A View Can Infinite Loop Scroll.",
  "description": "\n                          ##SCLoopScrollView\n                          * A View Can Infinite Loop Scroll.\n\n                          ##无限循环滚动视图\n                          * 可以同时在代码和Xib以及Storyboard中使用。\n                          * 只需要简单的设置一下图片源既可以，三行代码搞定无限循环广告视图。\n                          * 目前图片源支持图片链接和UIImage实例。\n\n                          ## 如何使用SCLoopScrollView\n                          * cocoapods导入：`pod 'SCLoopScrollView'`\n                          * 手动导入：\n                          * 将`SCLoopScrollView/Classes`文件夹中的所有文件拽入项目中\n                          * 导入主头文件：`#import \"SCLoopScrollView.h\"`\n\n                          ![](http://i1.tietuku.com/7db519b122670a90.gif)\n\n                          -----------------\n\n                          Init By Yourself\n                          ```{bash}\n                              NSArray *images = @[@\"http://e.hiphotos.baidu.com/image/w%3D310/sign=429b5adbbb014a90813e40bc99763971/622762d0f703918ffc60d8a3533d269759eec422.jpg\",\n                                                  [UIImage imageNamed:@\"0\"],\n                                                  @\"http://g.hiphotos.baidu.com/image/w%3D310/sign=9b62b9f379899e51788e3c1572a6d990/8718367adab44aed80ebd4eab11c8701a18bfb13.jpg\",\n                                                  [UIImage imageNamed:@\"1\"],\n                                                  @\"http://f.hiphotos.baidu.com/image/w%3D310/sign=544d5da6324e251fe2f7e2f99787c9c2/0824ab18972bd40720832c6179899e510eb309e1.jpg\",\n                                                  @\"http://www.huabian.com/uploadfile/2014/1008/20141008103712898.jpg\"];\n\n                              SCLoopScrollView *scrollView = [[SCLoopScrollView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.frame.size.width, 300.0f)];\n                              [self.view addSubview:scrollView];\n                              scrollView.images = images;\n                              [scrollView show:^(NSInteger index) {\n                                  NSLog(@\"%@\", @(index));\n                              } finished:^(NSInteger index) {\n                                  NSLog(@\"%@\", @(index));\n                              }];\n                          ```\n\n                          Init By Storyboard\n                          ```{bash}\n                              NSArray *images = @[@\"http://e.hiphotos.baidu.com/image/w%3D310/sign=429b5adbbb014a90813e40bc99763971/622762d0f703918ffc60d8a3533d269759eec422.jpg\",\n                                                  [UIImage imageNamed:@\"0\"],\n                                                  @\"http://g.hiphotos.baidu.com/image/w%3D310/sign=9b62b9f379899e51788e3c1572a6d990/8718367adab44aed80ebd4eab11c8701a18bfb13.jpg\",\n                                                  [UIImage imageNamed:@\"1\"],\n                                                  @\"http://f.hiphotos.baidu.com/image/w%3D310/sign=544d5da6324e251fe2f7e2f99787c9c2/0824ab18972bd40720832c6179899e510eb309e1.jpg\",\n                                                  @\"http://www.huabian.com/uploadfile/2014/1008/20141008103712898.jpg\"];\n\n                              _scrollView.images = images;\n                              [_scrollView show:^(NSInteger index) {\n                                  NSLog(@\"%@\", @(index));\n                              } finished:^(NSInteger index) {\n                                  NSLog(@\"%@\", @(index));\n                              }];\n                          ```\n\n",
  "homepage": "https://github.com/shicang1990/SCLoopScrollView",
  "screenshots": "http://i1.tietuku.com/7db519b122670a90.gif",
  "license": "MIT",
  "authors": {
    "ShiCang": "shicang1990@gmail.com"
  },
  "platforms": {
    "ios": "6.0"
  },
  "source": {
    "git": "https://github.com/shicang1990/SCLoopScrollView.git",
    "tag": "0.4.2"
  },
  "source_files": "Classes/",
  "requires_arc": true
}
