在 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 中释放带有图像的不可见按钮的主要内容,如果未能解决你的问题,请参考以下文章