我看过WWDC-104视频显示UIScrollView的照片。 我也下载了示例代码。 在我的应用程序中,结构如下,
(根类)A类---> B类-----------> PhotoViewController(包含ScrollView)
我使用B类中的presentModalViewController方法调用PhotoViewController类。
但是每次滑动时,新图像都会在视图中向右移动。 在图像的左侧可以看到黑色垂直条带,每次滑动都会加宽。 因此,在6到8张图像之后,视图变为全黑。
我还没有写任何其他代码。刚刚复制了这些类。
为什么在PhotoViewController类不是第一个要加载的类时会发生这种情况? 是否需要为ScrollView设置任何属性? 此视图层次结构中是否有错误?
如何从特定图像开始(从第10张图片加载)?
任何帮助/建议都将受到高度赞赏。
编辑:
首次水平滑动后,
第二次水平滑动后,
答案 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)
听起来您可能没有考虑图像间边距。你还复制了他们的资源文件吗?如果我没记错的话,他们的滚动视图会“略微偏离页面”,以便在图像之间留出余量。