[翻译] UPCardsCarousel
UPCardsCarousel

UPCardsCarousel is a carousel with a cards based UI for iOS.
UPCardsCarousel是一个旋转木马效果的UI控件.
UPCardsCarousel

Requirements
UPCardsCarousel uses ARC and requires iOS 7.0+.
需要ARC,iSO7.0以上.
Works for iPhone.
只针对iPhone开发.
Installation
CocoaPods
UPCardsCarousel is available through CocoaPods. To install it, simply add the following line to your Podfile:
你可以通过 CocoaPods 来安装.执行以下一段话即可.
pod "UPCardsCarousel"
Manual
Simply copy the folder UPCardsCarousel to your project and import it in XCode.
你只需要将UPCardsCarousel文件夹复制到你的项目中即可.
Usage
Start by importing the header file:
一开始,先引入头文件:
#import "UPCardsCarousel.h"
Now, you can create a UPCardsCarousel object by giving it a frame:
然后,你可以创建出UPCardsCarousel实体,然后给定一个frame值:
UPCardsCarousel *carousel = [[UPCardsCarousel alloc] initWithFrame:aFrame];
Then you need to assign to it:
之后,你需要设定代理以及给代理提供数据:
- a
delegateobject that conforms to theUPCardsCarouselDelegateprotocol - a
dataSourceobject that conforms to theUPCardsCarouselDataSourceprotocol
Data Source
The data source informs the carousel about the total number of cards and the content of each card through two self-explanatory methods:
数据源是给carousel提供有多少张卡片,以及每张图片上面的内容:
- (NSUInteger)numberOfCardsInCarousel:(UPCardsCarousel *)carousel(required)- (UIView *)carousel:(UPCardsCarousel *)carousel viewForCardAtIndex:(NSUInteger)index(required)
The labels in the banner are given with an optional method. If the data source doesn't implement this method, the label banner will not be displayed.
以下方法是可选方法,用来给卡片提供标题的,如果没有实现,默认是不会显示出来的.
- (NSString *)carousel:(UPCardsCarousel *)carousel labelForCardAtIndex:(NSUInteger)index(optional)
Delegate
The delegate is optional and will be notified when some events occur:
代理方法是非必须的,用以提示事件发生的时机:
- (void)carousel:(UPCardsCarousel *)carousel didTouchCardAtIndex:(NSUInteger)index- (void)carousel:(UPCardsCarousel *)carousel willDisplayCardAtIndex:(NSUInteger)index- (void)carousel:(UPCardsCarousel *)carousel willHideCardAtIndex:(NSUInteger)index- (void)carousel:(UPCardsCarousel *)carousel didDisplayCardAtIndex:(NSUInteger)index- (void)carousel:(UPCardsCarousel *)carousel didHideCardAtIndex:(NSUInteger)index
Methods
| Method | Description |
|---|---|
| reloadData | Reloads the carousel data and recreates the visible cards and moves to the top of the cards deck |
| reloadDataWithCurrentIndex:(NSUInteger)index | Reloads the carousel data and recreates the visible cards and moves to the specified index in the cards deck |
| reloadNumberOfCards | Reloads only the number of cards in the carousel and doesn't change the visible cards |
| reloadCardAtIndex:(NSUInteger)index | Recreates the card at the specified index |
| cardAtIndex:(NSUInteger)index | Return the card view at the specified index |
Customization
Cards Deck
Usually, the carousel will not display all the cards supplied by the data source at once. It will handle a infinite scrolling process by destroying and creating cards at both ends. The number of visible cards is given and can be customized through the following property:
通常情况下,carousel不会一下子显示出所有的图片.他有重用机制,并支持无限滑滚.可见的卡片数由以下方法提供:
maxVisibleCardsCount(default is 6)
You can customize the duration of the card movement between the hidden deck and the visible deck, with this property:
你可以定制每张卡片的移动时间,默认是0.4秒:
movingAnimationDuration(defaut is 0.4 seconds)
By default, the carousel will return to the top of the deck when making a double-tap on the first hidden card.
默认情况下,双击carousel会返回第一张显示的图片.

You can disable this behaviour by setting the doubleTapToTop property to NO.
你可以禁用双击功能.
Labels Banner
You can customize the text font and color of the banner through these two methods:
你可以通过以下两个方法来定制横幅:
- (void)setLabelFont:(UIFont *)font(default is system font)- (void)setLabelTextColor:(UIColor*)color(default is[UIColor blackColor])
You can choose between two locations for the banner through the labelBannerPosition property:
你可以通过labelBannerPosition属性来设置位移值:
UPCardsCarouselLabelBannerLocation_bottom- the banner will be located below the cards deck (default)UPCardsCarouselLabelBannerLocation_top- the banner will be located above the cards deck
Finally, you also have access to the banner view object through the labelBanner property so you can customize it as you want.
当然,你也可以写你自己的横幅view.给labelBanner赋值即可.
License
The MIT License (MIT)
Copyright (c) 2014 Paul Ulric
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.
[翻译] UPCardsCarousel的更多相关文章
- 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- [翻译]开发文档:android Bitmap的高效使用
内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...
- 【探索】机器指令翻译成 JavaScript
前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?
0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...
随机推荐
- git工具,conflict冲突解决方法
这篇文章需要对git具有一定的了解,并且知道如何安装git工具(其实就是上git官网下载个文件,安装) git这种版本控制工具有什么好处 第一个,方便可以多人协同开发同一个项目或系统 第二个,当你系统 ...
- Web服务(Apache、Nginx、Tomcat、Jetty)与应用(LAMP、CMS-WordPress&Ghost、Jenkins、Gitlab)
Web服务和应用是目前信息技术领域的热门技术.如何使用Docker来运行常见的Web服务器(包括Apache.Nginx.Tomcat等),以及一些常用应用(LAMP.CMS等).包括具体的镜像构建方 ...
- Nginx反向代理实现会话(session)保持的两种方式 (转)
http://blog.csdn.net/gaoqiao1988/article/details/53390352 一.ip_hash: ip_hash使用源地址哈希算法,将同一客户端的请求总是发往同 ...
- 一个基于Socket的http请求监听程序实现
首先来看以下我们的需求: 用java编写一个监听程序,监听指定的端口,通过浏览器如http://localhost:7777来访问时,可以把请求到的内容记录下来,记录可以存文件,sqlit,mysql ...
- Chrome 谷歌如何快速实现跨域
第一步:在你的E盘或者其他盘新建一个文件夹,命名为:E:\MyChromeDevUserData 第二步:找到你的谷歌浏览器快捷图标,鼠标右键选择属性,出现以下界面: 第三步:在目标选项的最后添加: ...
- b-树和b+树以及mysql索引
b-树(m阶): 1.根节点至少有2个子节点; 2.中间节点包含k个子节点和k-1个元素,m/2 <= k <= m; 3.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子 ...
- c#socket TCP同步网络通信
一.socket简介 socket就是套接字,它是引用网络连接的特殊文件描述符,由三个基本要素组成: 1: AddressFamily(网络类型) 2: SocketType(数据传输类型) 3:Pr ...
- orcle查询记录的每天的第一条
select * from ( select elec,time,Row_Number() OVER (partition by trunc(TIME) order by time) ran ...
- 我理解的js中预解释
浏览器在执行代码前,先找带var和带function的地方,把带var的声明且赋予初始值undefined,把带function的声明且定义. 带var关键字预解释 让我们先看下这段代码执行的结果: ...
- WCF webHttpBinding协议上传接收文件
一般情况下wcf用webHttpBinding协议最多的场景就是前后端Json交互,会比较轻量级. 接收上传的文件也可以,不过要自己解析处理. 前端HTML很简单: <input type=&q ...