我有一个包含UIButtons的水平UIScrollView(尽管它可以是任何对象)。我想只在用户滚动并且看到它们时才下载这些按钮的图像。我还想在下载图像时在每个按钮上运行一个activityindicator。这是我尝试过的结果:
检查uiscrollview的内容偏移量并下载可见按钮的图像。问题:在子类UIButton中显示获取活动视图的问题并且不希望使用,因为只有在滚动停止后才下载图像。
将子视图(不是按钮)添加到UIScrollview,希望使用视图的ViewController在viewDidAppear上启动下载。问题:viewDidAppear似乎永远不会被调用(因为我使用的是addSubView?)。
我见过其他应用程序进行此类加载但需要一些典型设置的指导。 Ebay的应用程序就是一个很好的例子。所有项目都有默认图像,直到项目进入视图,然后运行activityindicator并下载项目唯一图像。
感谢您的帮助。
答案 0 :(得分:0)
大多数此类应用使用的是UITableView
,而不是普通的滚动视图。 Joe Hewitt的Three20框架有一个TTImageView
类,可以进行延迟图像加载,非常适合这种用途。
答案 1 :(得分:0)
没有实际尝试,这是我的想法:
您可以使用UIScrollViewDelegate
方法scrollViewDidScroll
:找出滚动视图滚动完成的时间,然后使用[UIScrollView contentOffset]
确定滚动视图的哪个部分可见并{{1确定按钮在滚动视图的可见部分内的位置。有一个方法可以检查按钮是否已加载其图像,如果没有,则加载它并在必要时刷新视图。