开发者

In photoscroller app (iPhone WWDC-104 Photos App) uiscrollview images shift to right when called using presentModalviewController

开发者 https://www.devze.com 2023-01-19 02:21 出处:网络
I have seen the WWDC-104 video showing UIScrollView for photos. I have downloaded the Sample code too.

I have seen the WWDC-104 video showing UIScrollView for photos. I have downloaded the Sample code too. In my app the Structure is as follows,

(Root Class)Class A ---> Class B -----------> PhotoViewController(Containing ScrollView)

I am calling the PhotoViewController class by using presentModalViewController method in Class B.

But with every swipe the new Image shifts to right on the view. A black vertical strip is visible on left of the image which widens with each swipe. So after 6 to 8 images the view becomes totally black.

I have not written any other code. Just copied the classes.

Why this happens when the PhotoViewController class is not the first class to be loaded? Is there any property that needs to be set for ScrollView ? Is there any mistake in this view Hierarchy?

Also How to 开发者_开发百科start from a particular image (Load from 10th image)?

Any help/suggestion will be highly appreciated.

EDIT :

In photoscroller app (iPhone WWDC-104 Photos App) uiscrollview images shift to right when called using presentModalviewController

After First Horizontal Swipe,

In photoscroller app (iPhone WWDC-104 Photos App) uiscrollview images shift to right when called using presentModalviewController

After Second Horizontal Swipe,

In photoscroller app (iPhone WWDC-104 Photos App) uiscrollview images shift to right when called using presentModalviewController


Isn't your PhotoViewController pushed by a UINavigationController when you use it in your application ?

That's the problem, the NavigationController modifies the frame of the ScrollView and the offset and extended width created by PhotoViewController is not longer there once the view appears.

The easiest way to fix this is to set the view of PhotoViewController to a regular UIView and add the ScrollView as a subview of this UIView. Then the NavigationController will modify the frame of this view but it will not touch the subview.

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

Have a look at this question for more info: Photos app-like gap between pages in UIScrollView with pagingEnabled


it sounds like you may not be taking the inter-image margin into account. Did you also copy their resource files? If I recall correctly, their scrollview extended 'off the page' a bit to give a margin between images.

0

精彩评论

暂无评论...
验证码 换一张
取 消