iCarousel 1.8.3版本简介

2020-02-21  本文已影响0人  黎明s

原文链接:https://github.com/nicklockwood/iCarousel/blob/master/README.md#rotary

简介

iCarousel是一个类,旨在简化在iPhone,iPad和Mac OS上各种类型的轮播(页面,滚动视图)的实现。 iCarousel实现了许多常见的效果,例如圆柱形,扁平和“ CoverFlow”风格的旋转木马,并提供了挂钩来实现您自己的定制效果。 与许多其他“ CoverFlow”库不同,iCarousel可以使用任何类型的视图,而不仅仅是图像,因此它是在应用程序中以流畅而令人印象深刻的方式呈现分页数据的理想选择。 它还使通过最少的代码更改在不同的轮播效果之间切换变得非常容易。

支持 OS 和 SDK 版本

ARC兼容性

从1.8版开始,iCarousel需要ARC。 如果要在非ARC项目中使用iCarousel,只需将-fobjc-arc编译器标志添加到iCarousel.m类。 为此,请转到目标设置中的“构建阶段”选项卡,打开“编译源”组,双击列表中的iCarousel.m,然后在弹出窗口中键入-fobjc-arc。如果要将整个项目转换为ARC,请注释掉iCarousel.m中的#error行,然后在Xcode中运行“Edit > Refactor > Convert to Objective-C ARC...”工具,并确保要转换的所有文件 使用ARC进行检查(包括iCarousel.m)。

线程安全

iCarouselUIView的子类,和所有的UIKit组件一样,它只能从主线程访问。 您可能希望使用线程加载或更新轮播内容或项目,但始终确保一旦您的内容加载,您在更新轮播之前切换回主线程。

变色龙支持

iCarousel现在与Chameleon iOS-to-Mac转换库(https://github.com/BigZaphod/Chameleon)兼容。 要使用iCarouselChameleon,请将USING_CHAMELEON添加到项目的预处理器宏中。 查看Chameleon Demo示例项目,了解如何使用Chameleon将iOS iCarousel应用程序移植到Mac OS - 该示例演示如何使用Chameleon在Mac OS上运行No Nib iPhone示例。 请注意,点击中心当前不起作用,滚动操作必须使用双指滚动手势进行,而不是单击拖动(这两个都是由于变色龙UIGestureRecognizer实现的功能/限制)。

视图点击检测

在iOS上的iCarousel中,有两种基本方法来检测视图上的点击。 第一种方法是简单地使用轮播didSelectItemAtIndex:delegate方法,每次点击一个项目时都会触发。 如果您只需要对当前居中的item进行操作,可以将currentItemIndex属性与此方法的index参数进行比较。或者,如果您想要更多的控制,您可以提供UIButtonUIControl作为项目视图,并自己处理触摸交互。 有关如何完成此操作的示例,请参阅Buttons Demo示例项目(在Mac OS上不起作用)。您还可以在项目视图中嵌套UIControls,并且将按预期接收触摸(参见示例"Controls Demo")。如果您想检测其他类型的互动,例如滑动,双抽头或长按,最简单的方法是将UIGestureRecognizer附加到您的项目视图或其子视图在传递给carousel之前。

请注意,任何tapgestures在除中心item外的任何item将被忽略,除非你将centerItemWhenSelected属性设置为NO

安装

要在应用程序中使用iCarousel类,只需将iCarousel类文件拖到您的项目中并添加QuartzCore框架。 您也可以按常规方式使用Cocoapods安装它。

属性和方法介绍

可选值(typedef NS_ENUM(NSInteger, iCarouselOption))


typedef NS_ENUM(NSInteger, iCarouselType){
iCarouselTypeLinear = 0,            //线性的 ---> [平铺,不循环]
iCarouselTypeRotary,                //可旋转的 ---> [外环,层叠]
iCarouselTypeInvertedRotary,        //反向旋转式 ---> [内环,层叠]
iCarouselTypeCylinder,              //圆柱式 ---> [外环,拼接]
iCarouselTypeInvertedCylinder,      //反向圆柱式 ---> [内环,拼接]
iCarouselTypeWheel,                //车轮式 ---> [车轮,扇形,影响比较大]
iCarouselTypeInvertedWheel,        //反向车轮式 ---> [车轮,扇形,影响比较大]
iCarouselTypeCoverFlow,            //封面流 ---> [翻页,不循环]
iCarouselTypeCoverFlow2,            //封面流样式2 ---> [翻页2,不循环]
iCarouselTypeTimeMachine,          //时光机 ---> [向上堆叠,不循环]
iCarouselTypeInvertedTimeMachine,  //反向时光机 ---> [反堆叠,不循环]
iCarouselTypeCustom
};

iCarouselDataSource 代理方法


iCarouselDelegate 代理方法

上一篇 下一篇

猜你喜欢

热点阅读