STNScrollBarControl
如 Google 照片滚动条可以滚动 scrollview/tableview/collectionview 并根据单元格显示文本
演示
谁需要这个?
当您有大量的单元格在 tableview 或 collectionview 中时,sectionIndexTitlesForTableView 就不够用了。
要求
- Objective-C
- iOS 8.0+
- ARC
如何使用?
- 添加属性
@property (strong, nonatomic) STNScrollBar *scrollBar;
- 创建实例
self.scrollBar = [STNScrollBar scrollBar]; self.scrollBar.scrollView = self.tableView; self.scrollBar.delegate = self;
- 添加视图
- 在 UIViewController 中的 TableView/CollectionView
[self.view addSubview:self.scrollBar];
- 在 NavigationController 中的 TableViewController/CollectionViewController
[self.navigationController.view addSubview:self.scrollBar];
- 添加 viewDidDisappear
- (void)viewDidDisappear:(BOOL)animated { [self.scrollBar viewDidDisappear]; }
- 添加 UIScrollViewDelegate
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { [self.scrollBar scrollViewWillBeginDragging]; } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { [self.scrollBar scrollViewDidScroll]; } - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { [self.scrollBar scrollViewDidEndDraggingAndWillDecelerate:decelerate]; } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { [self.scrollBar scrollViewDidEndDecelerating]; }
- 添加 STNScrollBarDelegate
- (NSString *)scrollBar:(STNScrollBar *)scrollBar itemStringAtIndexPath:(NSIndexPath *)indexPath { return self.names[indexPath.row]; // anything you want to show based on indexPath }
安装
CocoaPods
CocoaPods 是一款 Cocoa 项目的依赖管理器。您可以使用以下命令安装它
$ gem install cocoapods
要使用 CocoaPods 集成 STNScrollBarControl 到您的 Xcode 项目中,请在 Podfile 中将其指定为一个目标
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'MyApp' do
# your other pod
# ...
pod 'STNScrollBarControl', '~> 1.0'
end
然后,运行以下命令
$ pod install
在从 CocoaPods 安装任何内容之后,您应该打开 "{项目}.xcworkspace" 而不是 "{项目}.xcodeproj"。
有关如何使用 CocoaPods 的更多信息,请参考这篇 教程。
许可证
STNScrollBarControl 在 MIT 许可下发布。详细信息请参阅 LICENSE。