开发者

Animation Layer Orientation

开发者 https://www.devze.com 2023-01-08 16:09 出处:网络
Hello and thanks for looking at my question. I have an app that supports landscape orientation only (either left or right button). It launches in landscape-left. Great - it launches in correct orient

Hello and thanks for looking at my question.

I have an app that supports landscape orientation only (either left or right button). It launches in landscape-left. Great - it launches in correct orientation, and it even reorients views properly (I've customized the supported orientations method) between landscape left and right.

Moving on to my question: I start the app and add a view. I start an animation and then swap my first view with a second (and a second with a third, etc).

My problem is the animation isn't consistent.

If I specify a kCATransitionFromLeft, my transition slides in from the TOP or the BOTTOM (depending on orientation of device). If I specify from kCATransitionFromRight, I get the same behavior.

If I specify kCATransitionFromBottom or kCATransitionFromTop - then the transition appears correctly with the new view sliding in from the side, however, which side it originates from still depends on the orientation of the device.

I want my view to always slide in 开发者_StackOverflow社区from right to left. Obviously I could write an if/then to achieve this using kCATransitionFromBottom or kCATransitionFromTop, but my thought is that there must be an easier way.

So, is there a simple way to have animations originate consistently according to the orientation? Why does a kCATransitionFromBottom not ALWAYS originate from the bottom? How would I even begin to modify this behavior?

Thanks for any insights.


I'm doing the same thing on a project I'm working on, the animation is started with a swipe. The only difference is that I'm swapping UIImages.

It would help if you could post some code, the only thing I remember right now is for you to check if the parent and swapped views correctly supports landscape view:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    if (interfaceOrientation == UIInterfaceOrientationLandscapeRight ||
        interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
        return YES;
    }
    return NO;
}

Hopes this helps!

0

精彩评论

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

关注公众号