3

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

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

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

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

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

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

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

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

编辑 :

替代文字

第一次水平滑动后,

替代文字

第二次水平滑动后,

替代文字

4

2 回答 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 中使用 pagingEnabled 的照片应用程序般的间隙

于 2010-11-14T12:29:48.683 回答
0

听起来您可能没有考虑图像间边距。你是否也复制了他们的资源文件?如果我没记错的话,他们的滚动视图将“页面外”扩展了一点,以便在图像之间留出空白。

于 2010-10-04T13:26:07.960 回答