2010-10-24 180 views
1

我正在研究更新UITableView和UIScrollView的应用程序。我喜欢UITableView更新的工作原理。当我添加,删除或更新项目时,我会根据情况调用insertRowsAtIndexPaths:withRowAnimation:reloadRowsAtIndexPaths:withRowAnimation:deleteRowsAtIndexPaths:withRowAnimation:。但是,更新UIScrollView已成为更大的挑战。如何动态添加图像到UIScrollView?

那么我该怎么做呢?我的UIScrollView包含图像,我希望能够高效顺利地插入,更新和删除个别图像 - 动画 - 也许是以随机顺序。人们如何做这种事情?

举个例子,我有这样的代码在我UIScrollViewDelegate实现增加一个新形象:

if (newImageindex == currentImageIndex) { 
    [scrollView setNeedsDisplay]; 
    [scrollView setContentOffset:portalView.contentOffset animated:YES]; 
} else if (newImageIndex < currentImageIndex) { 
    currentImageIndex++; 
    CGPoint offset = portalView.contentOffset; 
    offset.x += portalView.frame.size.width; 
    portalView.contentOffset = offset; 
} 

这是接近,我想,但并不完全正确。我最终添加了图像,但UIScrollView似乎滚动到之前视图中的第一个图像。如果我开始用手滚动,则会显示第一个图像。这就像它滚动到我的图像中的位置-1。

该示例可能无助于突出显示我的问题,但确实需要动态调整出现在UIScrollView中的图像。这方面的艺术状况如何?

回答

0

UIScrollView不像UITableView那么专业和结构化。前者是一种通用的视图,可以将任何东西放入其中,并且可以将任何子视图放置到任何位置,而后者特别适用于显示堆叠在另一个之上的单元格列表。

所以答案是:你需要自己动画滚动视图中的子视图。像Three20这样的各种库提供了创建更高级视图的框架,您需要使用其中一个合适的组件或自行打造。

+0

谢谢。这实际上是我所做的。然而,花了几个月的时间才弄清楚了。坦率地说,这可能还不完全正确。但目前它的运作状况已经足够好了。一旦我对解决方案完全满意,我打算在这里添加自己的答案。还没到,唉。 – theory 2011-02-14 16:58:50