一个受 Expedia 3.0 应用启发的,可以在不同速度无限上下滚动的控件。
注意:KLScrollSelect 旨在与 iPhone/iPod Touch 的纵向方向一起使用。
需要 ARC
代码 nguồn双许可。免费应用程序可以使用,无需限制,付费应用程序需要在https://cocoacontrols.cn/controls/klscrollselect购买许可证
查看演示 由于我的电脑速度慢,请原谅图形问题和不稳定。
每个列的滚动速率属性以[像素/秒]为单位衡量,可以为每个列单独设置。此值应通过 KLScrollViewDataSource 实现。如果未实现数据源,则默认为10像素/秒
1. Drag the KLScrollSelect.xcodeproj to your existing project
2. Under Build Phases on your project's Xcode Project file add 'KLScrollSelect(KLScrollSelect)' to your Target Dependancies
3. Under Build on your Xcode Project file add 'libKLScrollSelect' & QuartzCore.framework under Link Binary With Libraries
4. Include #import <KLScrollSelect/KLScrollSelect.h> in any file you wish to use
通过 CocoaPods 将以下行添加到您的 podfile
pod 'KLScrollSelect', :git=>'git://github.com/KieranLafferty/KLScrollSelect.git'
导入头文件并声明您的控制器以子类为 KLScrollViewController
#import <KLScrollSelect/KLScrollSelect.h>
@interface KLViewController : KLScrollSelectViewController
或,导入头文件并声明您的控制器以符合 KLScrollSelectDelegate 和 KLScrollSelectDataSrouce
#import <KLScrollSelect/KLScrollSelect.h>
@interface KLViewController : UIViewController <KLScrollSelectDataSource, KLScrollSelectDelegate>
实现 KLScrollSelectDataSource 所需的方法
@required
- (NSInteger)scrollSelect:(KLScrollSelect *)scrollSelect numberOfRowsInColumnAtIndex:(NSInteger)index;
- (UITableViewCell*) scrollSelect:(KLScrollSelect*) scrollSelect cellForRowAtIndexPath:(NSIndexPath *)indexPath;
@optional
- (CGFloat) scrollSelect: (KLScrollSelect*) scrollSelect heightForColumnAtIndex: (NSInteger) index;
- (CGFloat) scrollRateForColumnAtIndex: (NSInteger) index;
- (NSInteger)scrollSelect:(KLScrollSelect *)scrollSelect numberOfSectionsInColumnAtIndex:(NSInteger)index;
// Default is 1 if not implemented
- (NSInteger)numberOfColumnsInScrollSelect:(KLScrollSelectViewController *)scrollSelect;
实现 KLScrollSelectDelegate 的可选方法
@optional
- (void)scrollSelect:(KLScrollSelect *)tableView didSelectCellAtIndexPath:(NSIndexPath *)indexPath;
NSIndexPath 扩展实现了一个类别,将 列 添加到 NSIndexPath。这允许 NSIndexPath 识别哪些单元格在哪个列中,如下所示
column: Identifies to column in the KLScrollView
section: Identifies the section (As one would expect with UITableView column on NSIndexPath)
row: Identifies the row (As one would expect with UITableView row on NSIndexPath)
版权所有 2013 Kieran Lafferty
根据 Apache License,版本 2.0(“许可证”);除非符合许可证规定或书面同意,否则不得使用本文件。您可以在以下位置获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律有要求或书面同意,否则根据许可证分发软件是按“原样”分发的,不提供任何明示或暗示的保证或条件。有关许可的具体语言管辖许可和限制,请参阅许可证。