首先在UIScrollView中仅有两个有关Decelerating的方法分别为
1.
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{//指停止滑动后,scrollView仍然在移动,且移动结束的时候调用此方法
NSLog(@"滚动停止后仍然开始滑动行为_将要结束");
pscrollView.contentOffset = CGPointMake(0, 0);
}
2.
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
NSLog(@"滚动停止后仍然开始滑动行为_将要开始");
}
在这样的一个应用中,我们利用Decelerating来实现
代码如下
- (void)viewDidLoad
{
[super viewDidLoad];
pscrollView = [[UIScrollView alloc] init];
pscrollView.backgroundColor = [UIColor redColor];
pscrollView.frame = self.view.frame;
pscrollView.bounces = YES;
pscrollView.delegate = self;
pscrollView.contentSize = CGSizeMake(self.view.frame.size.width + 0.5, self.view.frame.size.height );
[self.view addSubview:pscrollView];
UILabel *label = [[UILabel alloc] init];
label.backgroundColor = [UIColor purpleColor];
label.text = @"请\n竖\n直\n方\n向\n排\n列";
label.numberOfLines = [label.text length];// 实现label的竖直方向排列
label.font = [UIFont systemFontOfSize:11];
label.frame = CGRectMake(330, 220, 20, 100);
[pscrollView addSubview:label];
tableView = [[UITableView alloc] init];
tableView.dataSource = self;
tableView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[pscrollView addSubview:tableView];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 20;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ID = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (cell == Nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
}
cell.textLabel.text = @"hello";
return cell;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{//指停止滑动后,scrollView仍然在移动,且移动结束的时候调用此方法
NSLog(@"滚动停止后仍然开始滑动行为将要结束");
pscrollView.contentOffset = CGPointMake(0, 0);
}
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
NSLog(@"滚动停止后仍然开始滑动行为将要开始");
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{}
来实现的话,会出现闪屏现象。