我的应用程序中的所有 UIScrollView 后代都停止响应滚动

Posted

技术标签:

【中文标题】我的应用程序中的所有 UIScrollView 后代都停止响应滚动【英文标题】:All UIScrollView descendants in my app have stopped responding to scrolling 【发布时间】:2012-08-06 10:33:51 【问题描述】:

我不知道我做了什么,但我正在实现 UIViewController Containment,突然间 UIKit UIScrollView 子类停止响应滚动,即使我绕过了所有自定义应用程序代码。比如这个标准的设置代码……

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

UIViewController *vc = [[UIViewController alloc] init];
vc.view = [[UIView alloc] initWithFrame:self.window.frame];

UIScrollView *sv = [[UIScrollView alloc] initWithFrame:vc.view.frame];
sv.contentSize = CGSizeMake(400, 3000);
[vc.view addSubview:sv];

在一个全新的 Xcode 项目中,scrollView 滚动,但在我现有的项目中,滚动没有效果,滚动条也没有出现。两个项目中的 AppDelegate 代码是相同的,我唯一的#import 是 UIKit。

换句话说,我的应用程序中从 UIScrollView 继承的所有类突然表现得好像它们的 scrollEnabled 属性设置为 NO,我无法更改它。

【问题讨论】:

【参考方案1】:

它可能是界面生成器中滚动视图上的“启用滚动”属性。

【讨论】:

【参考方案2】:
  // define the area that is initially visible
  scrollViewCustom.frame = CGRectMake(0, 5, 354, 500);

  // then define how much a user can scroll it
  [scrollViewCustom setContentSize:CGSizeMake(354, 960)];

另外,清除滚动视图的背景颜色以显示文本。

   scrollViewCustom.backgroundColor = [UIColor clearColor];

【讨论】:

此代码实际上与我在示例中提供的代码相同。我的背景颜色没有问题,问题在于滚动。【参考方案3】:

你可以像这样简单地创建。

scrollView=[[UIScrollView alloc]init]WithFrame:CGRectMake(0,0 ,320,480)];
[scrollView setScrollEnabled:YES];
[scrollView setContentSize:CGSizeMake(320, 600)];
scrollView.backgroundColor = [UIColor clearColor];

【讨论】:

scrollEnabled 默认为 YES。这个问题会影响到我的应用程序中从 UIScrollView 继承的每个类(所有 UITableViews、UITextViews 等)。 你的scrollingView运行良好,你的问题是什么? 问题是我的应用程序中所有继承自 UIScrollView (UITableViews, UITextViews) 的类都突然停止响应滚动。 IE。他们都表现得好像 scrollEnabled 是 NO,即使我已将其设置为 YES。 tableView 和 textView 是控件而不是类。当在 tableView 上滚动时,scrollView 不会滚动,而在 textView 上滚动 scrollView 不会滚动,在这些控件之外,您尝试滚动只会滚动 scrollView。【参考方案4】:

AFAIK 这是由于糟糕的第三方代码使用了UIPanGestureRecognizers 而没有实现gestureRecognizerShouldBegin:,从而覆盖了正常的滚动行为。

【讨论】:

以上是关于我的应用程序中的所有 UIScrollView 后代都停止响应滚动的主要内容,如果未能解决你的问题,请参考以下文章

进入应用程序后台后,UIScrollview 无法正确滚动

从 UICollectionViewCell 到 UIScrollView 中的正确位置

在Scroll View的高度动画后,UIScrollView的子视图不响应触摸

为所有 UIScrollView 的子类为 Pan Gesture 提供标签

UIScrollView 动态内容中的自动布局,底部有 UIButton

UIScrollView 中的 ICarousel