UIScrollView 不适用于 EXC_BAD_ACCESS

Posted

技术标签:

【中文标题】UIScrollView 不适用于 EXC_BAD_ACCESS【英文标题】:UIScrollView does not work with EXC_BAD_ACCESS 【发布时间】:2012-10-26 06:51:36 【问题描述】:

我有一个滚动视图,它是视图的子视图,并且有子视图。问题是这样的:scrollView 带有黑色背景(因为我设置了透明)并且也不起作用。 scrollView 与IBOutlet 连接。我重做了两次XIB,需要修复什么?当我将滚动视图添加为视图的子视图时:

 [self.view addSubview:self.scrollView];

我在运行时收到此错误:

   0x132b61:  calll  0x132b66;   CA::Layer::ensure_transaction_recursively(CA::Transaction*) + 14
   EXC_BAD_ACCESS(code=2 address=0xbf7ffffc)

如果我不在代码中添加它作为子视图,视图控制器会打开并且滚动视图是黑色的并且不会滚动。

【问题讨论】:

不工作是什么意思?到底发生了什么? 【参考方案1】:

您可能正在某处做某事,例如:

[myScrollView addSubview:myAnotherView];
[myAnotherView addSubview:myScrollView];

这会引发不必要的递归。检查你的代码。

【讨论】:

不确定 OP,但我的应用程序在 CA::Layer::ensure_transaction_recursively 处崩溃,这为我解决了问题。谢谢!【参考方案2】:

检查您是否使用带有框架的滚动视图进行初始化:

self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 280, 360)];

记得设置 contentSize 大于 frame,例如:

self.scrollView.contentSize = CGSizeMake(2*280, 360);

还在你的界面中添加委托:

<UIScrollViewDelegate>

并委托它:

self.scrollView.delegate = self;

【讨论】:

【参考方案3】:

在我的情况下,我的 UIView 收到了同样的错误。就我而言,我忘记为我的视图创建一个 IBOutlet。一旦我这样做了,错误就消失了。

【讨论】:

以上是关于UIScrollView 不适用于 EXC_BAD_ACCESS的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollview 不适用于情节提要

UIScrollView ScrollRectToVisible - 不适用于 animate = yes

contentInsetAdjustmentBehavior 似乎不适用于子 UIControllerView 的 UIScrollview

UIScrollView 作为 UIView 的子视图不适用于自动布局

iOS - UITextView上的链接不适用于UIScrollView

UIScrollView 不适用于 EXC_BAD_ACCESS