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 ScrollRectToVisible - 不适用于 animate = yes
contentInsetAdjustmentBehavior 似乎不适用于子 UIControllerView 的 UIScrollview
UIScrollView 作为 UIView 的子视图不适用于自动布局