ishkawa / ISColumnsController

paginated container view controller.
106 stars 19 forks source link

rotation fix + go to another page #3

Closed jonchui closed 12 years ago

ishkawa commented 12 years ago

Thanks for pull request again, but I found 3 issues.

on tapping UIPageControl,

1. scrollview does not scroll to tapped index.
   (ex. if current = 0, tapped = 2, then result=1. result should be 2.)

2. tapped indicator flashes before current page changes.

on scrolling after rotating,

3. transform is invalid. see the screenshot below.

http://gyazo.com/66494b68488e1213bd091e195b48f13c

jonchui commented 12 years ago

Hey ishkawa,

see inline

Jon Chui

Developer Team Lead, iOS/Android | Atimi Software (think Vancouver Canucks App)

Vancouver Curator | Startup Digesthttp://startupdigest.com/vancouver-startup/(100,000 worldwide subscribers)

http://jonchui.com http://goo.gl/kxc9b

http://twitter.com/jonchui http://goo.gl/O0X37

Love street food? Check out Eat St http://goo.gl/uraJh. app I developed! 500,000 downloads & counting!

on tapping UIPageControl,

  1. scrollview does not scroll to tapped index. (ex. if current = 0, tapped = 2, then result=1. result should be 2.)

This is apple's design: "The page control advances only one page in either direction. " http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPageControl_Class/Reference/Reference.html

  1. tapped indicator flashes before current page changes.

I have to fix this by changing the time the page control gets updated. you calculate a "new page" when the scroll view scrolls half-way. i changed it so that the title & page control are updated at the end of deceleration, in the function

  • (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

This seems to fix the flash

  1. transform is invalid. see the screenshot below.

http://gyazo.com/66494b68488e1213bd091e195b48f13c

I also fixed this transform by setting to identity transform on reload. Not sure if i like how it animates the slider on rotate, so i just made it go directly to the page, without animation. I extended the goToPage: method with a goToPage:animated: so you can choose to animate going to a page.

There was still a small glitch on animation rotation from a landscape image back to portrait - I fixed it by changing the reload from didRotate.. to willRotate...

Tell me your thoughts!

— Reply to this email directly or view it on GitHubhttps://github.com/ishkawa/ISColumnsController/pull/3#issuecomment-8606056.