我创建了一个类似于iOS地址簿的UITableView,它允许您在一行中选择图像,并且还有其他自定义单元格,其中包含用于输入数据的文本字段。只有在加载大图像并在控制台中获得内存警告后才会遇到此问题:
收到内存警告。级= 1
我在模态视图中使用UIImagePickerController加载图像。
因此,当发生内存警告时,我的父tableviewcontroller执行一个viewDidUnload,它是空的:
- (void)viewDidUnload { }
一旦我关闭模态视图(选择图像),tableview重新加载数据,一切看起来都很好......但是,滚动无法正常工作。行为很奇怪:滚动不会超过某一点。我可以直接向下拉动滚动,但是一旦我释放,滚动就会反弹并隐藏底部的fiew单元格(看起来很正常)。
对于我的生活,我无法弄清楚发生了什么,为什么这只发生在记忆警告之后。
这只发生在我的iPhone上(用iPhone 4测试)。这进一步让我相信内存警告可能是我问题的根源。
答案 0 :(得分:1)
我有一个解决方法。在显示模态视图之前,您应该关闭键盘并等待其解除。
答案 1 :(得分:0)
您在[loadView]或[viewDidLoad]中设置的所有内容都应在[viewDidUnload]中清除。反过来说:你在[viewDidUnload]中销毁的所有内容都应该在[loadView]或[viewDidLoad]中重新创建并重新初始化。
您应该将其视为辅助init / dealloc序列。
答案 2 :(得分:0)
将-(void)viewDidUnload;
设置为空在该上下文中肯定是错误的,因为至少应该调用[super viewDidUnload];
否则您将在视图中有两个表(甚至更多),因为控制器将继续在-(void)loadView;