在photoscroller应用程序(iPhone WWDC-104照片应用程序)中uiscrollview图像在使用presentModalviewController调用时向右移动

时间:2010-10-04 10:49:50

标签: iphone uiscrollview paging presentmodalviewcontroller wwdc

我看过WWDC-104视频显示UIScrollView的照片。 我也下载了示例代码。 在我的应用程序中,结构如下,

(根类)A类---> B类-----------> PhotoViewController(包含ScrollView)

我使用B类中的presentModalViewController方法调用PhotoViewController类。

但是每次滑动时,新图像都会在视图中向右移动。 在图像的左侧可以看到黑色垂直条带,每次滑动都会加宽。 因此,在6到8张图像之后,视图变为全黑。

我还没有写任何其他代码。刚刚复制了这些类。

为什么在PhotoViewController类不是第一个要加载的类时会发生这种情况? 是否需要为ScrollView设置任何属性? 此视图层次结构中是否有错误?

如何从特定图像开始(从第10张图片加载)?

任何帮助/建议都将受到高度赞赏。

编辑:

alt text

首次水平滑动后,

alt text

第二次水平滑动后,

alt text

2 个答案:

答案 0 :(得分:4)

在你的应用程序中使用它时,你的PhotoViewController不是由UINavigationController推送的吗?

这就是问题,导航控制器修改了ScrollView的框架,一旦视图出现,PhotoViewController创建的偏移和扩展宽度就不再存在。

解决此问题的最简单方法是将PhotoViewController的视图设置为常规UIView,并将ScrollView添加为此UIView的子视图。然后NavigationController将修改此视图的框架,但不会触及子视图。

UIView * intermediateView = [[UIView alloc] initWithFrame:pagingScrollViewFrame];
[intermediateView addSubview:pagingScrollView];
self.view = intermediateView;

有关详细信息,请查看此问题: Photos app-like gap between pages in UIScrollView with pagingEnabled

答案 1 :(得分:0)

听起来您可能没有考虑图像间边距。你还复制了他们的资源文件吗?如果我没记错的话,他们的滚动视图会“略微偏离页面”,以便在图像之间留出余量。