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

问题描述 投票:0回答:2

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

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

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

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

我没有编写任何其他代码。刚刚复制了课程。

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

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

任何帮助/建议将不胜感激。

编辑:

alt text

第一次水平滑动后,

alt text

第二次水平滑动后,

alt text

iphone pagination uiscrollview presentmodalviewcontroller wwdc
2个回答
4
投票

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

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

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

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

看看这个问题以获取更多信息: 启用分页的 UIScrollView 中页面之间类似照片应用程序的间隙


0
投票

听起来您可能没有考虑图像间边距。你也复制了他们的资源文件吗?如果我没记错的话,他们的滚动视图稍微延伸到“页面之外”,以在图像之间留出边距。

© www.soinside.com 2019 - 2024. All rights reserved.