测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可协议 | MIT 协议 |
发布日期上次发布 | 2014 年 12 月 |
由 Brian Gesiak 维护。
一个动画滚动条,当在 UIScrollView 上滚动时向用户显示额外信息。
就像 Path 上的时钟。
基本上,您有两个选项。您可以
请参阅示例应用程序了解具体使用方法。
#pragma mark - Creating the Scroll Bar Label
- (void)viewDidLoad {
[super viewDidLoad];
// Create a table view with a row height of 100.f
CGSize size = self.view.frame.size;
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds
style:UITableViewStylePlain];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.rowHeight = 100.f;
[self.view addSubview:self.tableView];
// Add a scroll bar label to the table view
self.scrollBarLabel = [[MDCScrollBarLabel alloc] initWithScrollView:self.tableView];
[self.tableView addSubview:self.scrollBarLabel];
}
#pragma mark - Updating the Date on the Scroll Bar Label
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
[super scrollViewDidScroll:scrollView];
// Determine which row the scroll bar label is currently hovering over
NSInteger rowNumber = CGRectGetMinY(self.scrollBarLabel.frame) / 100.f;
// Update the date on the label using the model data for that row
// (here we assume you have a model named `Event`)
Event *event = self.events[rowNumber];
self.scrollBarLabel.date = event.date;
}
#pragma mark - Show/Hide the Label Using UIScrollViewDelegate Callbacks
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
[self.scrollBarLabel adjustPositionForScrollView:scrollView];
[self.scrollBarLabel setDisplayed:YES animated:YES afterDelay:0.0f];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
[self.scrollBarLabel setDisplayed:NO animated:YES afterDelay:self.scrollBarFadeDelay];
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate {
if (!decelerate) {
[self.scrollBarLabel setDisplayed:NO animated:YES afterDelay:self.scrollBarFadeDelay];
}
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
[self.scrollBarLabel setDisplayed:NO animated:YES afterDelay:self.scrollBarFadeDelay];
}
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {
[self.scrollBarLabel setDisplayed:NO animated:YES afterDelay:self.scrollBarFadeDelay];
}
MIT 许可协议。有关详细信息,请参阅 LICENSE 文件。