在 UIScrollView 中释放带有图像的不可见按钮

Posted

技术标签:

【中文标题】在 UIScrollView 中释放带有图像的不可见按钮【英文标题】:Releasing invisible buttons with images in UIScrollView 【发布时间】:2012-02-06 10:18:50 【问题描述】:

我的主 UIScrollView 有很多关闭按钮,我这样创建:

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]

每个按钮都有一个图像:

UIImage *fileImage = [UIImage imageNamed:@"sun.png"];
[myButton setBackgroundImage:fileImage forState:UIControlStateNormal];

按钮数量可能超过 500 个。所以我需要从 UIscrollView 中删除带有图像的不可见按钮以节省内存?

我相信在这种方法中,我需要计算 UIscrollview 何时停止滚动并且例如 20 个图像不可见,然后我需要删除它们并减少滚动内容偏移量。

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 

    float bottomEdge = scrollView.contentOffset.y + scrollView.frame.size.height;

也许有人可以给我一些建议。甚至有一个很好的书签教程。

【问题讨论】:

嗨,我有一年多的经验。永远不要释放按钮,它会给你带来糟糕的过度或崩溃。你只需要从滚动条中删除。您没有任何其他按钮选项... 我没有遇到发布。我只是想删除它们,但就我而言,这并不容易,因为我从网络上获取了这些按钮的图像。 【参考方案1】:

我在 UIScrollView 中使用 UIViews 创建了与此类似的东西。当 UIScrollView 加载时,我将 scrollView 的 contentView 大小设置为所有视图的大小,但只加载可以看到的视图,然后当用户滚动时,我添加了上一个/下一个视图并删除了隐藏的视图。

这个问题帮助了我:How to implement UIScrollView with 1000+ subviews? 特别是akosma's answer

【讨论】:

以上是关于在 UIScrollView 中释放带有图像的不可见按钮的主要内容,如果未能解决你的问题,请参考以下文章

带有背景图像的 UIScrollView

带有检测触摸的图像视图的 UIScrollView

带有图像的 UIScrollView

带有图像的 UIScrollView

带有嵌套图像的 UiScrollview 看起来很奇怪

带有图像的 UIScrollView - 如何不缩放其中一个