3d图片轮播 ios_ios 3d轮播 - CSDN
  • 概述CoverFlow效果是IOS上自带的控件,类似3d轮播图效果。 在Android中也有很多的相关实现,大体都是使用Gallery和Camera来实现的。相关开源库:ImageCoverFlow效果图:但是Gallery已经被标记过时,而且ViewPager更...

    概述

    CoverFlow效果是IOS上自带的控件,类似3d轮播图效果。
    在Android中也有很多的相关实现,大体都是使用Gallery和Camera来实现的。

    相关开源库:ImageCoverFlow

    效果图:

    这里写图片描述

    但是Gallery已经被标记过时,而且ViewPager更方便使用。而且ViewPager中有个接口ViewPagerTransformer,专门用于给ViewPager设置翻页动画的。

    ViewPagerTransformer使用

    自定义类实现ViewPagerTransformer接口,viewpager调用setPageTransformer即可。

    //参数含义:page绘制顺序;transformer实例对象
    ViewPager.setPageTransformer(boolean reverseDrawingOrder, PageTransformer transformer);

    每次界面切换,transformPage()都会为viewpager容器下的缓存页面调用该方法。如,第三页可见且用户向第四页拖动,在操作的各个阶段为第二,三,四页分别调用(ViewPager默认缓存3页)。

    //其中view即viewpager的当前item,
    transformPage(View view, float position)

    如果是3页的 情况下,当前也position的取值范围是[-1,1]
    前面的position:[-Infinity,-1)
    后面的position:(1,+Infinity]

    clipChildren

    clipChildren是指子控件是否超过padding区域,这个属性默认是true,利用此属性即可设置viewpager一屏展示多个item,如果将page 沿着y轴旋转即可实现类似coverflow效果了。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:id="@+id/vp_container"
        android:layout_height="match_parent"
        android:clipChildren="false">
    
        <com.bobomee.android.scrollloopviewpager.autoscrollviewpager.AutoScrollViewPager
            android:id="@+id/picslooper3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="100dp"
            android:layout_marginRight="100dp"
            android:clipChildren="false" />
    
        <com.bobomee.android.drawableindicator.widget.DrawableIndicator
            android:id="@+id/pageIndexor3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            app:indicator_height="15dp"
            app:indicator_margin="15dp"
            app:indicator_select_src="@drawable/select_drawable"
            app:indicator_unselect_src="@drawable/unselect_drawable"
            app:indicator_width="15dp" />
    </RelativeLayout>

    java code:

      PagerAdapter adapter;
            final AutoScrollViewPager viewPager = (AutoScrollViewPager) findViewById(R.id.picslooper3);
            viewPager.setAdapter(adapter = new FragmentStateAdapter(getSupportFragmentManager()));
            viewPager.setDirection(AutoScrollViewPager.LEFT);
            viewPager.setPageTransformer(true, new RotateTransformer());
    
            BaseIndicator pageIndex = (BaseIndicator) findViewById(R.id.pageIndexor3);
            pageIndex.setViewPager(viewPager);
    
            viewPager.startAutoScroll();
    
            //设置幕后item的缓存数目
            viewPager.setOffscreenPageLimit(adapter.getCount());
    
            //设置页与页之间的间距
            int margin = ((ViewGroup.MarginLayoutParams) viewPager.getLayoutParams()).leftMargin;
            viewPager.setPageMargin(-(px2dip(this, margin)) / 2);
    
            //将父类的touch事件分发至viewPgaer,否则只能滑动中间的一个view对象
            RelativeLayout vpContainer = (RelativeLayout) findViewById(R.id.vp_container);
            vpContainer.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    return viewPager.dispatchTouchEvent(event);
                }
            });

    transformer:

    public class RotateTransformer implements ViewPager.PageTransformer {
    
        public static final float MAX_SCALE = 1.2f;
        public static final float MIN_SCALE = 0.6f;
    
        @Override
        public void transformPage(View page, float position) {
            page.setRotationY(position * -45);
    
            if (position < -1) {
                position = -1;
            } else if (position > 1) {
                position = 1;
            }
    
            float tempScale = position < 0 ? 1 + position : 1 - position;
    
            float slope = (MAX_SCALE - MIN_SCALE) / 1;
            //一个公式
            float scaleValue = MIN_SCALE + tempScale * slope;
            page.setScaleX(scaleValue);
            page.setScaleY(scaleValue);
    
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
                page.getParent().requestLayout();
            }
    
        }
    }

    效果图:
    3dbanner

    实例代码:autoscrollloopviewpager

    展开全文
  • iOS 3D卡片式轮播

    2018-07-24 14:37:26
    支持五险轮播,可以加载本地图片,也可以加载网络图片,可以根据自己的需求自定义 UITableViewDelegate /** * 当前显示cell的Size(中间页显示大小) * * @param flowView &amp;lt;#flowView de...

    效果:
    这里写图片描述

    参考UITableView的UITableViewDataSource和UITableViewDelegate两个方法实现;支持五险轮播,可以加载本地图片,也可以加载网络图片,可以根据自己的需求自定义
    Demo地址

    UITableViewDelegate

    /**
     *  当前显示cell的Size(中间页显示大小)
     *
     *  @param flowView <#flowView description#>
     *
     *  @return <#return value description#>
     */
    - (CGSize)sizeForPageInFlowView:(HQFlowView *)flowView;
    
    /**
     *  滚动到了某一列
     *
     *  @param pageNumber <#pageNumber description#>
     *  @param flowView   <#flowView description#>
     */
    - (void)didScrollToPage:(NSInteger)pageNumber inFlowView:(HQFlowView *)flowView;
    
    /**
     *  点击了第几个cell
     *
     *  @param subView 点击的控件
     *  @param subIndex    点击控件的index
     *
     *  @return <#return value description#>
     */
    - (void)didSelectCell:(HQIndexBannerSubview *)subView withSubViewIndex:(NSInteger)subIndex;

    UITableViewDataSource

    /**
     *  返回显示View的个数
     *
     *  @param flowView <#flowView description#>
     *
     *  @return <#return value description#>
     */
    - (NSInteger)numberOfPagesInFlowView:(HQFlowView *)flowView;
    
    /**
     *  给某一列设置属性
     *
     *  @param flowView <#flowView description#>
     *  @param index    <#index description#>
     *
     *  @return <#return value description#>
     */
    - (HQIndexBannerSubview *)flowView:(HQFlowView *)flowView cellForPageAtIndex:(NSInteger)index;
    展开全文
  • ios实现超炫3d界面切换。。。。。。。。。。。。。。。。。。。。。。
  • 一:关于图片轮播器以前都是自己写图片轮播器,可以使UIiscrollerView也可以使用UIcollectionView,但是不管是使用UIiscrollerView还是使用UIcollectionView实现过程都略显繁琐,今天给大家介绍一个简单好用的第三方...

    一:关于图片轮播器

    以前都是自己写图片轮播器,可以使UIiscrollerView也可以使用UIcollectionView,但是不管是使用UIiscrollerView还是使用UIcollectionView实现过程都略显繁琐,今天给大家介绍一个简单好用的第三方框架SDCycleScrollView来实现图片轮播器。GitHub链接地址:https://github.com/gsdios/SDCycleScrollView

    二:SDCycleScrollView使用方法
    (1)可以使用cocopods导入,pod ‘SDCycleScrollView’,’~> 1.64’,如果发现pod search SDCycleScrollView 搜索出来的不是最新版本,需要在终端执行cd转换文件路径命令退回到desktop,然后执行pod setup命令更新本地spec缓存(可能需要几分钟),然后再搜索就可以了。
    (2)也可以把demo下载下来,手动把需要的库SDCycleScrollView导入目标工程,如下:

    打开下载的demo,把SDCycleScrollView库,拖入目标工程,如下图:

    SDCycleScrollView处理图片时用到了SDWebImage做图片缓存,所以工程中需要导入第三方库SDWebImage。把准备工作做完后,接下来就相当爽了,只需要调用几行代码,一个图片轮播器便可以轻松搞定。废话不多说直接上代码:

    [objc] view plain copy 在CODE上查看代码片派生到我的代码片
    //
    // ViewController.m
    // SDCycleScrollView
    //
    // Created by aier on 15-3-22.
    // Copyright (c) 2015年 GSD. All rights reserved.
    //

    import "ViewController.h" #import "SDCycleScrollView.h"
    
    @interface ViewController () <SDCycleScrollViewDelegate>  
    
    @end  
    
    @implementation ViewController  
    
    - (void)viewDidLoad {  
        [super viewDidLoad];  
    
        self.view.backgroundColor = [UIColor colorWithRed:0.98 green:0.98 blue:0.98 alpha:0.99];  
        UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"005.jpg"]];  
        backgroundView.frame = self.view.bounds;  
        [self.view addSubview:backgroundView];  
    
        UIScrollView *demoContainerView = [[UIScrollView alloc] initWithFrame:self.view.frame];  
        demoContainerView.contentSize = CGSizeMake(self.view.frame.size.width, 1200);  
        [self.view addSubview:demoContainerView];  
    
        self.title = @"轮播Demo";  
    
    
        // 情景一:采用本地图片实现  
        NSArray *imageNames = @[@"h1.jpg",  
                                @"h2.jpg",  
                                @"h3.jpg",  
                                @"h4.jpg",  
                                @"h7" // 本地图片请填写全名  
                                ];  
    
        // 情景二:采用网络图片实现  
        NSArray *imagesURLStrings = @[  
                               @"https://ss2.baidu.com/-vo3dSag_xI4khGko9WTAnF6hhy/super/whfpf%3D425%2C260%2C50/sign=a4b3d7085dee3d6d2293d48b252b5910/0e2442a7d933c89524cd5cd4d51373f0830200ea.jpg",  
                               @"https://ss0.baidu.com/-Po3dSag_xI4khGko9WTAnF6hhy/super/whfpf%3D425%2C260%2C50/sign=a41eb338dd33c895a62bcb3bb72e47c2/5fdf8db1cb134954a2192ccb524e9258d1094a1e.jpg",  
                               @"http://c.hiphotos.baidu.com/image/w%3D400/sign=c2318ff84334970a4773112fa5c8d1c0/b7fd5266d0160924c1fae5ccd60735fae7cd340d.jpg"  
                               ];  
    
        // 情景三:图片配文字  
        NSArray *titles = @[@"新建交流QQ群:185534916 ",  
                            @"感谢您的支持,如果下载的",  
                            @"如果代码在使用过程中出现问题",  
                            @"您可以发邮件到gsdios@126.com"  
                            ];  
    
        CGFloat w = self.view.bounds.size.width;  
    
    
    // >>>>>>>>>>>>>>>>>>>>>>>>> demo轮播图1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
    
        // 本地加载 --- 创建不带标题的图片轮播器  
        SDCycleScrollView *cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 64, w, 180) shouldInfiniteLoop:YES imageNamesGroup:imageNames];  
        cycleScrollView.delegate = self;  
        cycleScrollView.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated;  
        [demoContainerView addSubview:cycleScrollView];  
        cycleScrollView.scrollDirection = UICollectionViewScrollDirectionVertical;  
        //         --- 轮播时间间隔,默认1.0秒,可自定义  
        //cycleScrollView.autoScrollTimeInterval = 4.0;  
    
    
    // >>>>>>>>>>>>>>>>>>>>>>>>> demo轮播图2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
    
        // 网络加载 --- 创建带标题的图片轮播器  
        SDCycleScrollView *cycleScrollView2 = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 280, w, 180) delegate:self placeholderImage:[UIImage imageNamed:@"placeholder"]];  
    
        cycleScrollView2.pageControlAliment = SDCycleScrollViewPageContolAlimentRight;  
        cycleScrollView2.titlesGroup = titles;  
        cycleScrollView2.currentPageDotColor = [UIColor whiteColor]; // 自定义分页控件小圆标颜色  
        [demoContainerView addSubview:cycleScrollView2];  
    
        //         --- 模拟加载延迟  
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{  
            cycleScrollView2.imageURLStringsGroup = imagesURLStrings;  
        });  
    
        /* 
         block监听点击方式 
    
         cycleScrollView2.clickItemOperationBlock = ^(NSInteger index) { 
            NSLog(@">>>>>  %ld", (long)index); 
         }; 
    
         */  
    
    
    // >>>>>>>>>>>>>>>>>>>>>>>>> demo轮播图3 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
    
        // 网络加载 --- 创建自定义图片的pageControlDot的图片轮播器  
        SDCycleScrollView *cycleScrollView3 = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 500, w, 180) delegate:self placeholderImage:[UIImage imageNamed:@"placeholder"]];  
        cycleScrollView3.currentPageDotImage = [UIImage imageNamed:@"pageControlCurrentDot"];  
        cycleScrollView3.pageDotImage = [UIImage imageNamed:@"pageControlDot"];  
        cycleScrollView3.imageURLStringsGroup = imagesURLStrings;  
    
        [demoContainerView addSubview:cycleScrollView3];  
    
    }  
    
    pragma mark - SDCycleScrollViewDelegate
    
    - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index  
    {  
        NSLog(@"---点击了第%ld张图片", (long)index);  
    
        [self.navigationController pushViewController:[NSClassFromString(@"DemoVCWithXib") new] animated:YES];  
    }  
    
    
    /* 
    
    // 滚动到第几张图回调 
    - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index 
    { 
        NSLog(@">>>>>> 滚动到第%ld张图", (long)index); 
    } 
    
     */  
    
    @end  
    
    展开全文
  • ios ScrollerView之图片轮播器 关于如何用scrollView来建立一个图片轮播的功能 #import "JYHCarouselController.h"@interface JYHCarouselController () @property (weak, nonatomic) IBOutlet UIScrollVi

    ios ScrollerView之图片轮播器


    今天项目中用到了图片轮播器,写完之后贴到博客里来记录一下,也方便有兴趣的同学学习

    
    #import "JYHCarouselController.h"
    
    @interface JYHCarouselController ()<UIScrollViewDelegate>
    @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
    @property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
    @property (strong, nonatomic) NSTimer *timer;
    @end
    
    @implementation JYHCarouselController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        NSArray *array = @[@"img_01",@"img_02",@"img_03"];
        [self imageCarouselWithimageArray:array];
    }
    - (void) imageCarouselWithimageArray:(NSArray *)imageArray {
    
        //图片的宽度和X值
        CGFloat imageW = self.scrollView.frame.size.width;
        CGFloat imageH = self.scrollView.frame.size.height;
        CGFloat imageY = 0;
    
        //将图片加入到scrollerView中
        for(int i = 0; i < imageArray.count; i++) {
    
            UIImageView *imageView = [[UIImageView alloc]init];
    
            //设置imageView的frame
            CGFloat imageX = i * imageW;
            imageView.frame = CGRectMake(imageX, imageY, imageW, imageH);
    
            //设置显示图片
            NSString *imageName = imageArray[i];
            imageView.image = [UIImage imageNamed:imageName];
    
            //将图片加入到scrollView中
            [self.scrollView addSubview:imageView];
        }
    
        //设置内容尺寸
        self.scrollView.contentSize = CGSizeMake(imageArray.count * imageW, 0);
    
        //隐藏水平滚动条且分页
        self.scrollView.showsHorizontalScrollIndicator = NO;
        self.scrollView.pagingEnabled = YES;
        self.scrollView.delegate = self;
    
        //页面指示器的总页数
        self.pageControl.numberOfPages = imageArray.count;
    
        //添加定时器
        [self addTimer];
    }
    
    - (void)addTimer{
        self.timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];
        //将定时器添加到当前的运行循环中(不添加会导致拖动其他控件时图片轮播器会停止)
        [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
    }
    
    -(void)nextImage {
        //增加页面指示器的页码
        long page = 0;
    
        if(self.pageControl.currentPage == self.pageControl.numberOfPages - 1) {
            page = 0;
        } else {
            page = self.pageControl.currentPage + 1;
        }
        //让scrollView滚动到正确位置
        CGPoint offset = CGPointMake(page * self.scrollView.frame.size.width, 0);
        [self.scrollView setContentOffset:offset animated:YES];
    }
    
    //当scrollView滚动时调用
    -(void)scrollViewDidScroll:(UIScrollView *)scrollView {
        // 根据scrollView的滚动位置决定pageControl显示第几页
        CGFloat scrollW = scrollView.frame.size.width;
        int page = (scrollView.contentOffset.x + scrollW * 0.5) / scrollW;
        self.pageControl.currentPage = page;
    
    }
    
    
    //当scrollView开始拖动时调用
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
        [self removeTimer];
    }
    
    //移除定时器
    - (void)removeTimer {
        [self.timer invalidate];//定时器一旦停止就废了
        self.timer = nil;
    }
    
    //当scrollView停止拖动时调用
    -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
        [self addTimer];
    }
    
    @end
    展开全文
  • 一:关于图片轮播器 以前都是自己写图片轮播器,可以使UIiscrollerView也可以使用UIcollectionView,但是不管是使用UIiscrollerView还是使用UIcollectionView实现过程都略显繁琐,今天给大家介绍一个简单好用的第...

    一:关于图片轮播器


    以前都是自己写图片轮播器,可以使UIiscrollerView也可以使用UIcollectionView,但是不管是使用UIiscrollerView还是使用UIcollectionView实现过程都略显繁琐,今天给大家介绍一个简单好用的第三方框架SDCycleScrollView来实现图片轮播器。GitHub链接地址:https://github.com/gsdios/SDCycleScrollView  。

    二:SDCycleScrollView使用方法

    (1)可以使用cocopods导入,pod 'SDCycleScrollView','~> 1.64'如果发现pod search SDCycleScrollView 搜索出来的不是最新版本,需要在终端执行cd转换文件路径命令退回到desktop,然后执行pod setup命令更新本地spec缓存(可能需要几分钟),然后再搜索就可以了。
    (2)也可以把demo下载下来,手动把需要的库SDCycleScrollView导入目标工程,如下:



    打开下载的demo,把SDCycleScrollView库,拖入目标工程,如下图:





    SDCycleScrollView处理图片时用到了SDWebImage做图片缓存,所以工程中需要导入第三方库SDWebImage。把准备工作做完后,接下来就相当爽了,只需要调用几行代码,一个图片轮播器便可以轻松搞定。废话不多说直接上代码:


    [objc] view plain copy
     print?在CODE上查看代码片派生到我的代码片
    1. //  
    2. //  ViewController.m  
    3. //  SDCycleScrollView  
    4. //  
    5. //  Created by aier on 15-3-22.  
    6. //  Copyright (c) 2015年 GSD. All rights reserved.  
    7. //  
    8.   
    9.   
    10. #import "ViewController.h"  
    11. #import "SDCycleScrollView.h"  
    12.   
    13. @interface ViewController () <SDCycleScrollViewDelegate>  
    14.   
    15. @end  
    16.   
    17. @implementation ViewController  
    18.   
    19. - (void)viewDidLoad {  
    20.     [super viewDidLoad];  
    21.       
    22.     self.view.backgroundColor = [UIColor colorWithRed:0.98 green:0.98 blue:0.98 alpha:0.99];  
    23.     UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"005.jpg"]];  
    24.     backgroundView.frame = self.view.bounds;  
    25.     [self.view addSubview:backgroundView];  
    26.       
    27.     UIScrollView *demoContainerView = [[UIScrollView alloc] initWithFrame:self.view.frame];  
    28.     demoContainerView.contentSize = CGSizeMake(self.view.frame.size.width1200);  
    29.     [self.view addSubview:demoContainerView];  
    30.       
    31.     self.title = @"轮播Demo";  
    32.   
    33.       
    34.     // 情景一:采用本地图片实现  
    35.     NSArray *imageNames = @[@"h1.jpg",  
    36.                             @"h2.jpg",  
    37.                             @"h3.jpg",  
    38.                             @"h4.jpg",  
    39.                             @"h7" // 本地图片请填写全名  
    40.                             ];  
    41.       
    42.     // 情景二:采用网络图片实现  
    43.     NSArray *imagesURLStrings = @[  
    44.                            @"https://ss2.baidu.com/-vo3dSag_xI4khGko9WTAnF6hhy/super/whfpf%3D425%2C260%2C50/sign=a4b3d7085dee3d6d2293d48b252b5910/0e2442a7d933c89524cd5cd4d51373f0830200ea.jpg",  
    45.                            @"https://ss0.baidu.com/-Po3dSag_xI4khGko9WTAnF6hhy/super/whfpf%3D425%2C260%2C50/sign=a41eb338dd33c895a62bcb3bb72e47c2/5fdf8db1cb134954a2192ccb524e9258d1094a1e.jpg",  
    46.                            @"http://c.hiphotos.baidu.com/image/w%3D400/sign=c2318ff84334970a4773112fa5c8d1c0/b7fd5266d0160924c1fae5ccd60735fae7cd340d.jpg"  
    47.                            ];  
    48.       
    49.     // 情景三:图片配文字  
    50.     NSArray *titles = @[@"新建交流QQ群:185534916 ",  
    51.                         @"感谢您的支持,如果下载的",  
    52.                         @"如果代码在使用过程中出现问题",  
    53.                         @"您可以发邮件到gsdios@126.com"  
    54.                         ];  
    55.       
    56.     CGFloat w = self.view.bounds.size.width;  
    57.       
    58.       
    59.   
    60. // >>>>>>>>>>>>>>>>>>>>>>>>> demo轮播图1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
    61.       
    62.     // 本地加载 --- 创建不带标题的图片轮播器  
    63.     SDCycleScrollView *cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(064, w, 180) shouldInfiniteLoop:YES imageNamesGroup:imageNames];  
    64.     cycleScrollView.delegate = self;  
    65.     cycleScrollView.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated;  
    66.     [demoContainerView addSubview:cycleScrollView];  
    67.     cycleScrollView.scrollDirection = UICollectionViewScrollDirectionVertical;  
    68.     //         --- 轮播时间间隔,默认1.0秒,可自定义  
    69.     //cycleScrollView.autoScrollTimeInterval = 4.0;  
    70.       
    71.       
    72. // >>>>>>>>>>>>>>>>>>>>>>>>> demo轮播图2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
    73.       
    74.     // 网络加载 --- 创建带标题的图片轮播器  
    75.     SDCycleScrollView *cycleScrollView2 = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0280, w, 180) delegate:self placeholderImage:[UIImage imageNamed:@"placeholder"]];  
    76.       
    77.     cycleScrollView2.pageControlAliment = SDCycleScrollViewPageContolAlimentRight;  
    78.     cycleScrollView2.titlesGroup = titles;  
    79.     cycleScrollView2.currentPageDotColor = [UIColor whiteColor]; // 自定义分页控件小圆标颜色  
    80.     [demoContainerView addSubview:cycleScrollView2];  
    81.       
    82.     //         --- 模拟加载延迟  
    83.     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{  
    84.         cycleScrollView2.imageURLStringsGroup = imagesURLStrings;  
    85.     });  
    86.       
    87.     /* 
    88.      block监听点击方式 
    89.       
    90.      cycleScrollView2.clickItemOperationBlock = ^(NSInteger index) { 
    91.         NSLog(@">>>>>  %ld", (long)index); 
    92.      }; 
    93.       
    94.      */  
    95.       
    96.       
    97. // >>>>>>>>>>>>>>>>>>>>>>>>> demo轮播图3 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
    98.       
    99.     // 网络加载 --- 创建自定义图片的pageControlDot的图片轮播器  
    100.     SDCycleScrollView *cycleScrollView3 = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0500, w, 180) delegate:self placeholderImage:[UIImage imageNamed:@"placeholder"]];  
    101.     cycleScrollView3.currentPageDotImage = [UIImage imageNamed:@"pageControlCurrentDot"];  
    102.     cycleScrollView3.pageDotImage = [UIImage imageNamed:@"pageControlDot"];  
    103.     cycleScrollView3.imageURLStringsGroup = imagesURLStrings;  
    104.       
    105.     [demoContainerView addSubview:cycleScrollView3];  
    106.       
    107. }  
    108.   
    109.   
    110. #pragma mark - SDCycleScrollViewDelegate  
    111.   
    112. - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index  
    113. {  
    114.     NSLog(@"---点击了第%ld张图片", (long)index);  
    115.       
    116.     [self.navigationController pushViewController:[NSClassFromString(@"DemoVCWithXib") new] animated:YES];  
    117. }  
    118.   
    119.   
    120. /* 
    121.   
    122. // 滚动到第几张图回调 
    123. - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index 
    124. { 
    125.     NSLog(@">>>>>> 滚动到第%ld张图", (long)index); 
    126. } 
    127.   
    128.  */  
    129.   
    130. @end  
    展开全文
  • 压缩包分为左右轮播和上下轮播两个工程,集成简单,实现逻辑清楚,可以学习思想并尝试自己实现
  • iOS--轮播视图

    2016-06-04 17:22:24
    原文  ... ... ...平时APP中的广告位或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的
  • 个人感觉CollectionView过于强大,基本什么界面都能用他来完成需求,只是如果自定义Layout的时候可能性能开 销大。如果是普通的需求,他和tableView并没有多大的区别,同样都是通过datasource和delegate两个代理来...
  • 今天做项目过程中,需要切换背景图片,但是由于直接切换十分生硬,因此使用如下动画,可以时图片改变时有渐变的效果。 [objc] view plaincopyprint? "white-space:pre"> CATransition ...
  • iOS开发,3D旋转效果
  • 本文是我学习《iOS Animations by Tutorials》 笔记中的一篇。 文中详细代码都放在我的Github上 andyRon/LearniOSAnimations。 到目前为止,之前的文章只使用了二维动画——这是在平面设备屏幕上动画元素的最自然...
  • iOS开发中,经常需要一些动态效果,动画之类的,然后会用一组图片,加上定时器去循环切换,利用帧动画的原理UIImageView上的图片,达到动态的效果;其实没有必要,昨天研究了下UIImageView的属性,发现UIImageView有一个方法 ...
  • 从事iOS开发已经有一段时间了,之前一直忙于工作,几乎很少有时间写一些东西来对自己掌握的技术进行一下总结,现在想想,有些后悔,因为之前在遇见问题的时候或者学习新技术的时候都是在翻看他人的博客或者查看苹果...
  • 初始化就应该赋值(图片数组)否则后赋值只是显示 并不会自动轮播 轮播时间间隔 也没给要求 这就是外包只要求速度 正规的应该有详细的说明文档 包括字体大小,准确的字体颜色的RGB等。 SDCycleScrollView是目前用...
  • 一、案例演示本案例Demo演示的是一个首页轮播的案例,支持手动轮播和自动轮播。知识点主要集中在UICollectionView和NSTimer的使用。 二、知识储备2.1、UICollectionView横向布局只需要设置...
  • 好久没有写博客了,前段时间换了家公司,做了两个多星期,完成了一款app的开发, 公司没有app的需求了,我们几个移动端Android和IOS都转岗开发微信小程序,由于刚接触小程序不到两周,技术还是基于复制粘贴,h5以前...
  • 目前有很多APP都开始使用一些滚动banner,我自己也做了一个,部分算法没有深思, 只是为了实现功能,毕竟只是几个小时的作品。 滚动做了2种为水平和垂直,自动滚动间隔...关闭btn可设,图片下载是使用SDWebIma...
  • @interface ViewController () SDCycleScrollViewDelegate> @end @implementation ViewController - (void)viewDidLoad {  [super viewDidLoad];... self.view.backgroundColo
  • iOS - 图片实现多层折叠效果 2016-01-04 10:27 编辑: suiling 分类:iOS开发 来源:Resory 投稿 6 5963 图片多层折叠折叠效果 招聘信息: 手机视频剪辑字幕配音工具iOS类app点读笔...
1 2 3 4 5 ... 20
收藏数 8,026
精华内容 3,210
关键字:

3d图片轮播 ios