我看过 WWDC-104 视频,展示了 UIScrollView 的照片。 我也下载了示例代码。 在我的应用程序中,结构如下,
(根类)A类 ---> B类 -----------> PhotoViewController(包含ScrollView)
我正在使用B类中的presentModalViewController方法来调用PhotoViewController类。
但是每次滑动,新图像都会在视图中向右移动。 图像左侧可见一条黑色垂直条,每次滑动都会加宽。 因此,在 6 到 8 张图像之后,视图会变成全黑。
我没有编写任何其他代码。刚刚复制了课程。
当 PhotoViewController 类不是第一个加载的类时,为什么会发生这种情况? ScrollView 是否需要设置任何属性? 这个视图层次结构有错误吗?
另外如何从特定图像开始(从第 10 张图像加载)?
任何帮助/建议将不胜感激。
编辑:
第一次水平滑动后,
第二次水平滑动后,
当您在应用程序中使用 PhotoViewController 时,它不是由 UINavigationController 推送的吗?
这就是问题所在,NavigationController 修改了 ScrollView 的框架,一旦视图出现,PhotoViewController 创建的偏移量和扩展宽度就不再存在了。
解决此问题的最简单方法是将 PhotoViewController 的视图设置为常规 UIView 并将 ScrollView 添加为该 UIView 的子视图。然后,NavigationController 将修改该视图的框架,但不会触及子视图。
UIView * intermediateView = [[UIView alloc] initWithFrame:pagingScrollViewFrame];
[intermediateView addSubview:pagingScrollView];
self.view = intermediateView;
看看这个问题以获取更多信息: 启用分页的 UIScrollView 中页面之间类似照片应用程序的间隙
听起来您可能没有考虑图像间边距。你也复制了他们的资源文件吗?如果我没记错的话,他们的滚动视图稍微延伸到“页面之外”,以在图像之间留出边距。