1

我创建了一个类似于 iOS 通讯簿的 UITableView,它允许您在一行中选择图像,并且还有其他自定义单元格具有用于输入数据的文本字段。我仅在加载大图像并在控制台中收到内存警告后遇到此问题:

收到内存警告。等级=1

我在模态视图中使用 UIImagePickerController 加载图像。

因此,当内存警告发生时,我的父 tableviewcontroller 执行 viewDidUnload,它是空的:

- (void)viewDidUnload { }

一旦我关闭模态视图(选择图像),表格视图重新加载数据并且一切看起来都很好......但是,滚动无法正常工作。行为很奇怪:滚动不会超过某个点。我可以从字面上一直拉下滚动,但是一旦我释放,滚动就会反弹回来并隐藏底部的窗口单元格(看起来很正常)。

对于我的生活,我无法弄清楚发生了什么,为什么这只发生在内存警告之后。

这仅在我的 iPhone 上发生(使用 iPhone 4 进行测试)。这进一步让我相信内存警告可能是我问题的根源。

4

3 回答 3

1

我有一个解决办法。在显示模态视图之前,您应该关闭键盘并等到它关闭。

于 2011-11-27T11:14:42.827 回答
0

在这种情况下将设置-(void)viewDidUnload;为空肯定是错误的,因为至少应该调用[super viewDidUnload];-(void)loadView;

于 2011-11-27T11:55:35.840 回答
0

您在 [loadView] 或 [viewDidLoad] 中设置的所有内容都应在 [viewDidUnload] 中清理。反之亦然:在 [viewDidUnload] 中销毁的所有内容都应该在 [loadView] 或 [viewDidLoad] 中重新创建和重新初始化。

您应该将其视为辅助 init/dealloc 序列。

于 2010-09-30T09:39:33.697 回答