使用iCarousel的旋转木马效果请求图片

使用iCarousel的旋转木马效果请求图片

https://github.com/nicklockwood/iCarousel

先看看效果:

 

 

源码如下:

//
//  RootViewController.m
//
//  Created by YouXianMing on 14-5-16.
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import "RootViewController.h"
#import "iCarousel.h"
#import "YXJSON.h"
#import "YXGCD.h"
#import "SDWebImage.h"

// 数据源
#define SOURCE_DATA @"http://www.duitang.com/album/1733789/masn/p/0/50/"

@interface RootViewController ()<iCarouselDataSource, iCarouselDelegate>

@property (nonatomic, strong) iCarousel      *carousel;   // iCarousel
@property (nonatomic, strong) NSMutableArray *dataArray;  // 数据源

@end

@implementation RootViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    // 初始化数据源
    _dataArray = [[NSMutableArray alloc] init];

    // 初始化iCarousel
    self.carousel = [[iCarousel alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:_carousel];
    _carousel.backgroundColor = [UIColor blackColor];
    _carousel.type = iCarouselTypeWheel;

    // 设置代理
    self.carousel.delegate   = self;
    self.carousel.dataSource = self;

    // 异步加载数据
    [[GCDQueue globalQueue] execute:^{
        // 获取json数据
        NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:SOURCE_DATA]];

        // 转换为字典
        NSDictionary *dataDic = [YXJSON dictionaryOrArrayWithJSONSData:data];
        if (dataDic)
        {
            NSArray *dataArray = dataDic[@"data"][@"blogs"];
            for (NSDictionary *dic in dataArray)
            {
                NSLog(@"%@", dic[@"isrc"]);

                // 存储数据
                [_dataArray addObject:dic[@"isrc"]];
            }
        }

        // 主线程更新
        [[GCDQueue mainQueue] execute:^{

            // 重新加载carousel
            [_carousel reloadData];
        }];
    }];
}

#pragma mark -
#pragma mark iCarousel methods
- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
{
    // 元素个数
    return [_dataArray count];
}

- (UIView *)carousel:(iCarousel *)carousel
  viewForItemAtIndex:(NSUInteger)index      // view的标志
         reusingView:(UIView *)view         // 重用的view
{
    if (view == nil)
    {
        view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300.0f, 400.0f)];
    }

    // 强行转换指针
    UIImageView *pointView = (UIImageView *)view;

    // 使用SDWebImage异步下载图片
    [pointView setImageWithURL:[NSURL URLWithString:_dataArray[index]]];

    // 图片自动适应
    pointView.contentMode = UIViewContentModeScaleAspectFit;

    return view;
}

- (CGFloat)carousel:(iCarousel *)carousel
     valueForOption:(iCarouselOption)option
        withDefault:(CGFloat)value
{
    if (option == iCarouselOptionSpacing)
    {
        return value * 1.1f;
    }

    return value;
}

@end

RootViewController.m

以下几个地方使用了本人自己封装的类,不开源,看官请自行替换相关方法-_-!

核心的地方如下:

so easy :)

 

 

问:如何实现view的点击事件?

实现协议方法 - (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index; 即可

 

问:如何获取偏移量?

实现协议,然后如下使用

- (void)carouselDidScroll:(iCarousel *)carousel
{
    NSLog(@"scrollOffset %f", carousel.scrollOffset);
}

 

时间: 2024-11-16 15:22:34

使用iCarousel的旋转木马效果请求图片的相关文章

android-Android 仿美拍录制视频、添加效果、图片合成视频

问题描述 Android 仿美拍录制视频.添加效果.图片合成视频 除了ffmpeg,还有其他的可以做出视频录制.添加效果.图片和声音合成视频么?求大神请教!ffmpeg水太深,开发时间有限啊!!!请求扶持!!! 解决方案 http://blog.csdn.net/sdvch/article/details/38348411http://blog.csdn.net/cuiran/article/details/26581715 解决方案二: 阿里旗下除了一个趣拍SDK.支持android和ios两

用于mask遮罩效果的图片配合resizableImage使用

用于mask遮罩效果的图片配合resizableImage使用 效果: 作为素材用的图片: 源码: // // ViewController.m // Rect // // Created by YouXianMing on 15/3/29. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @i

PS制作显示器播放效果动画图片

教程教飞特的朋友们用PS制作显示器播放效果动画图片,教程制作难度中等偏上,主要还是介绍PS制作动画的具体流程,这里介绍的是帧动画,对PS8.0以上的版本都适用,好了,先来看看最终的效果图吧: 效果图:   具体的制作过程如下: 效果图:   分类: PS入门教程

jquery淡化版banner异步图片文字效果切换图片特效

 全屏淡入淡出简洁banner,异步图片文字效果切换图片特效,需要的朋友可以参考下  代码如下: <pre code_snippet_id="280064" snippet_file_name="blog_20140408_1_8982765" name="code" class="html"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti

coverflow gallery-有没有人可是实现以下图片中红框的效果,图片可以滚动

问题描述 有没有人可是实现以下图片中红框的效果,图片可以滚动 解决方案 这叫CoverFlow吧,用gallery就可以实现的 解决方案二: Android开发技巧 图片滚动效果实现 解决方案三: 轮播么?去下载里搜搜吧,有很多~ 解决方案四: http://www.jq22.com/jquery-plugins%E5%B9%BB%E7%81%AF%E7%89%87%E5%92%8C%E8%BD%AE%E6%92%AD%E5%9B%BE-1-jq 这个里面太多了,你自己去找一个吧

Android使用缓存机制实现文件下载及异步请求图片加三级缓存_Android

首先给大家介绍Android使用缓存机制实现文件下载 在下载文件或者在线浏览文件时,或者为了保证文件下载的正确性,需要使用缓存机制,常使用SoftReference来实现. SoftReference的特点是它的一个实例保存对一个Java对象的软引用,该软引用的存在不妨碍垃圾收集线程对该Java对象的回收.也就是说,一旦SoftReference保存了对一个Java对象的软引用后,在垃圾线程对这个Java对象回收前,SoftReference类所提供的get()方法返回Java对象的强引用.另外

jQuery动画效果实现图片无缝连续滚动_jquery

本文实例介绍了jQuery动画效果实现图片无缝连续滚动的详细代码,分享给大家供大家参考,具体内容如下 效果图如下: 一.HTML代码 <body> <div id="container"> <ul id="content"> <li><a href="#"><img src="images/0.png"/></a></li> <

jQuery插件uploadify实现ajax效果的图片上传_jquery

昨天做了一天的ajax效果的图片上传,就是想让自己学的更加的精一些,所以看了很多第三方的控件,最后还是选择了uploadify这个控件,主要原因是比较容易上手. 首先我们先参考别人的资料(我自己整理了一下) 可选项 需要参数类型 参数名字 解释 (布尔型) auto 当文件被添加到队列时,自动上传. (字符串) buttonImg 浏览按钮的背景图片路径. (字符串) buttonText 默认在按钮上显示的文本. (字符串) cancelImg 取消按钮的背景图片路径. (字符串) check

3d-像这样的安卓3D效果旋转图片菜单怎么实现的

问题描述 像这样的安卓3D效果旋转图片菜单怎么实现的 解决方案 这个安卓源码里面有的,你直接找到Ratation3dAnimation拷贝出来,设置旋转角度就可以了,根本不需要自己写. 解决方案二: 3d开发游戏里面用的比较多.不过看着这实现应该没那么发杂.同问