2

我正在尝试在 xcode 中创建翻页应用程序。翻页适用于横向右侧,但对于横向左侧,页面卷曲从左侧发生。我添加了一个容器视图,然后横向左侧的页面卷曲从底部开始发生,而不是从右侧发生。

我在这里(http://stackoverflow.com/questions/4780488/i-want-to-use-animation-to-imageview-using-uianimationtransitioncurl-right-or-lef)和这里(http://stackoverflow)找到了一些建议.com/questions/4780488/i-want-to-use-animation-to-imageview-using-uianimationtransitioncurl-right-or-lef)

但是这两个建议都是使用旧样式的页面转换代码而不是块代码。我试图用新的块样式代码修改这些,但它不适合我。

我在这里附上我的代码:

- (void)viewDidLoad
{

    UIImage *img = [UIImage imageNamed:@"s1p1.png"];
    currentView.image = img;
    img = [UIImage imageNamed:@"s1p2.png"];
    swapView.image = img;

    UISwipeGestureRecognizer *nextPage;
    nextPage = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(turnPage)] autorelease];

    if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationLandscapeLeft) {
        [nextPage setDirection:UISwipeGestureRecognizerDirectionRight];
    }
    else {
    [nextPage setDirection:UISwipeGestureRecognizerDirectionLeft];
    }

    [self.view addGestureRecognizer:nextPage];

    [super viewDidLoad];
}

-(void) turnPage 
{

    if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationLandscapeLeft) 
    {
        NSLog(@"landscapeleft");
        mainView.transform = CGAffineTransformMakeRotation(M_PI);
        currentView.transform = CGAffineTransformMakeRotation(-M_PI); 
        swapView.transform = CGAffineTransformMakeRotation(-M_PI); 
        [UIView transitionWithView:mainView
                          duration:1
                           options:UIViewAnimationOptionTransitionCurlUp
                        animations:^{
                            currentView.hidden = YES;
                            swapView.hidden = NO;
                                    }
                        completion:^(BOOL finished){
                            UIImage    *temp = [currentView.image retain];
                            currentView.image = swapView.image;
                            swapView.image = temp;
                            [temp release];
                            currentView.hidden = NO;
                            swapView.hidden = YES;
                        }];

    }
    else
    {
        NSLog(@"landscaperight");
        [UIView transitionWithView:self.view
                          duration:1
                           options:UIViewAnimationOptionTransitionCurlUp
                        animations:^{
                            currentView.hidden = YES;
                            swapView.hidden = NO;
                        }
                        completion:^(BOOL finished){
                            UIImage    *temp = [currentView.image retain];
                            currentView.image = swapView.image;
                            swapView.image = temp;
                            [temp release];
                            currentView.hidden = NO;
                            swapView.hidden = YES;
                        }];

    }


}

我有两个视图:self.view 是窗口的主视图,然后 mainView 是我的容器视图。currentView 和 SwapView 是图像视图。

对此有什么想法吗?非常感谢您对此进行审查。

4

0 回答 0