Answering my own question - I ended up using NSPageController.

2015-10-29 8:55 GMT+02:00 Nick <eveningn...@gmail.com>:

> Hi
> I am trying to do a nice sliding effect (that looks to the user as
> Calendar scrolling), but for pages. So basically I have several pages that
> I want to present to the user one by one, that he can flip with a trackpad
> gesture.
>
> I am using a kCATransitionFromLeft animation, when the pages are being
> flipped backwards:
>
> -(IBAction)prevPage:(id)sender {
>     if(self.currentPageIndex <= 0)
>         return; //no previous subview
>
>     [self.pageDisplayView
> removeConstraints:self.pageDisplayView.constraints];
>
>     CATransition *trans = [CATransition animation];
>     trans.type = kCATransitionMoveIn;
>     trans.subtype = kCATransitionFromLeft;
>     self.pageDisplayView.animations = @{@"subviews": trans};
>
>     [[self.pageDisplayView animator]
> replaceSubview:self.pages[self.currentPageIndex]
> with:self.pages[self.currentPageIndex-1]];
>     self.currentPageIndex--;
>
>     NSDictionary *subView = @{@"page": self.pages[self.currentPageIndex]};
>     NSArray *hConstraints = [NSArray array];
>     hConstraints = [hConstraints
> arrayByAddingObjectsFromArray:[NSLayoutConstraint
> constraintsWithVisualFormat:@"H:|[page]|" options:0 metrics:nil
> views:subView]];
>     NSArray *vConstraints = [NSArray array];
>     vConstraints = [hConstraints
> arrayByAddingObjectsFromArray:[NSLayoutConstraint
> constraintsWithVisualFormat:@"V:|[page]|" options:0 metrics:nil
> views:subView]];
>     [self.pagedisplayView addConstraints:hConstraints];
>     [self.pageDisplayView addConstraints:vConstraints];
> }
>
> But the problem is that the previous (old) subview, that is being replaced
> by the new one, does not animate - only the new one does. So it doesn't
> look like scrolling, more like the new page goes over the old page.
> I would like to have the old subview move from right to left as it
> disappears (as in slide out) as well.
> How could I achieve this?
>
> And just as a subquestion, how is continuous swipe gesture tracking
> usually implemented?  Basically I was hoping to have the user to be able to
> swipe the pages left (go to the next page) and right (go to the prev page),
> but in such a way that while his fingers are still on the trackpad, the
> page doesn't move away completely but stays "in a transition". Something
> like pages in Safari, when you go back and forward with the swipe gesture
> but do not take the fingers off the trackpad. I was wondering how did Apple
> do this?
>
> Thank you for reading this far and possible suggestions!
>
>
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to