【问题标题】:UIScrollView scrollViewDidEndDragging and scrollViewDidEndDecelerating not workingUIScrollView scrollViewDidEndDragging 和 scrollViewDidEndDecelerating 不起作用
【发布时间】:2014-05-10 03:35:38
【问题描述】:

我搜索并发现了多个帖子,推荐的确定用户何时停止滚动以及 UIScrollView 何时停止移动的方法如下:

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
   // Perform desired outcome here.
   NSLog(@"scrollViewDidEndDragging");
}

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
   // Perform desired outcome here.
   NSLog(@"scrollViewDidEndDecelerating");
}

我尝试了多种方法,我无法让它工作。

我有什么明显的遗漏吗?代表有什么事吗?

【问题讨论】:

  • 您需要确保的第一件事是为您的 UIScrollView 设置委托..

标签: ios uiscrollview uiscrollviewdelegate


【解决方案1】:

确保您的 ViewController 中包含以下所有代码。

在你的ViewController.m下添加

@interface ScrollViewTestViewController ()<UIScrollViewDelegate>

内部ViewDidLoad

- (void)viewDidLoad
{
[super viewDidLoad];

self.scrollView1.delegate=self;
self.scrollView2.delegate=self;
}


-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView 
                         willDecelerate (BOOL)decelerate {
 // Perform desired outcome here.
 NSLog(@"scrollViewDidEndDragging");

 if(scrollView==self.scrollView1)
   //Do Something
 else if(scrollView==self.scrollView2)
   // Do Another thing
 }

添加一个屏幕截图和一个内容大小来模拟滚动行为。

【讨论】:

  • 我继续输入所有内容。我收到一个错误:“使用未声明的标识符 'scrollViewDidEndDragging”和“使用未声明的标识符 'scrollViewDidEndDecelerating”
  • 好的,我搞定了。我的下一个问题是如何让它在同一个视图控制器中的 2 个或更多 UIScrollViews 上工作?你不能有 2 个 self.delegates。它适用于一个名为scrollView,但是scrollView2 和scrollView3 呢?谢谢。
  • 您可以在同一个视图控制器中拥有任意数量的滚动视图,但在滚动视图的委托方法中,您必须使用 if-else 语句来区分不同的滚动视图。我刚刚更新了上面的示例代码。
  • 哦,哇,这比我想的要简单得多。我想的要复杂得多。非常感谢瑞奇!
  • 没问题,埃里克。我很高兴能帮上忙。 ;)
猜你喜欢
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 2014-02-04
  • 2013-12-30
相关资源
最近更新 更多