如何将图像动态添加到UIScrollView?

时间:2010-10-24 07:21:18

标签: objective-c cocoa-touch uiscrollview

我正在开发一个同时更新UITableView和UIScrollView的应用程序。我喜欢UITableView更新的工作原理。在我添加,删除或更新项目时,我会根据需要致电insertRowsAtIndexPaths:withRowAnimation:reloadRowsAtIndexPaths:withRowAnimation:deleteRowsAtIndexPaths:withRowAnimation:。但是,更新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中出现的图像的常见需求。这是最先进的技术?

1 个答案:

答案 0 :(得分:0)

UIScrollView不像UITableView那样专业化和结构化。前者是一个通用视图,可以滚动和缩放放在其中的任何内容,您可以在任何地方放置任何子视图,而后者则特别用于显示堆叠在彼此顶部的单元格列表。

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