【发布时间】:2012-10-30 15:51:59
【问题描述】:
情况是这样的:
我有一个水平滚动的UIScrollView(称为A)。对于此滚动视图,属性pagingEnabled 设置为YES。在屏幕的右侧我有一个UIButton,它附加到self.view,并且不会随着滚动视图滚动。
点击此按钮时,该按钮会显示一个UIView,其中另一个UIScrollView(称为B)会垂直滚动。此滚动视图包含UIButton 和UILabel 的列表。每个UIButton 作为一个UIImage 作为背景图像。我用UIButton 代替UIImageView 因为这样很容易管理图像上的触摸事件。 UILabel 包含每张图片的描述。
问题:
对于A scroll view 中的每个页面,我需要更改B scroll view 中包含的UIButton,因为每个页面都有不同的图像列表。因此,在scrollView:didEndScrollingAnimation 滚动视图委托方法中,我从视图中删除了旧的UIButton 和旧的UILabel,并从包含它们的NSArray 中删除。
我创建了一个UIButton 和UILabel 的新列表,我添加到self.view 并插入到数组中,[array addObject:]。
在可变数量的滚动后,应用会收到 内存警告消息,并且会从系统中删除。
我使用 ARC,因此几乎不可能理解旧对象是否已解除分配(无论如何都会非常困难,因为它们是系统对象)。
有什么想法吗?
【问题讨论】:
-
您的应用程序中是否发生了其他昂贵的操作?这里唯一会真正引起内存压力的是图像。您是否尝试过分析您的应用程序?你应该这样做,看看是什么占用了所有内存/没有被释放。
-
嘿弗莱,我遇到了类似的问题。解决了吗?如果是,请更新这篇文章。
标签: ios uibutton automatic-ref-counting didreceivememorywarning