2013-01-06 49 views

回答

0

看看UIPageViewController

這裏是一個link的文檔。從iOS5開始,它支持頁面捲曲轉換。在iOS6中,他們添加了幻燈片,就像你在截圖中所做的一樣。

如果您需要支持早期版本,您很可能需要創建自己的動畫(使用CAAnimation)。

+0

它看起來像OP想要幻燈片效果。添加到頁面視圖控制器(稱爲滾動)的新轉換不會這樣做。這更像是一個水平滾動視圖 - 隨着新視圖移動,一個視圖移出。 – rdelmar

1

據我所知,沒有一個「固定」的轉換可以完成。我實現這樣的:

-(void)SlideInController:(RDSlideController *) next { 
    next.presentingVC = self; 
    next.view.frame = CGRectMake(self.view.frame.origin.x + 320, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height); 
    [self.view.window addSubview:next.view]; 
    [UIView animateWithDuration:slideTime animations:^{ 
     next.view.frame = self.view.frame; 
    } completion:^(BOOL finished) { 
     self.view.window.rootViewController = next; 
    }]; 
} 

-(void)SlideOut { 
    RDSlideController *prev = self.presentingVC; 
    prev.view.frame = self.view.frame; 
    [self.view.window insertSubview:prev.view belowSubview:self.view]; 
    [UIView animateWithDuration:slideTime animations:^{ 
     self.view.frame = CGRectMake(self.view.frame.origin.x + 320, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height); 
    } completion:^(BOOL finished) { 
     self.view.window.rootViewController = prev; 
    }]; 
} 

在這個例子中,我所做的是我的其他控制器的超控制器類(RDSlideController),使他們都有presentingVC財產和獲得的各種滑入和滑出(和上下)我寫的方法。這應該給你一個如何做到這一點的想法。

+0

我在呈現VC和slideTime時出現錯誤 – eplefrik

+0

@eplefrik,這只是一個如何實現此目的的示例。 slideTime只是一個int - 你需要在某處設置它的值,而呈現VC是RDSlideController的一個屬性。你需要根據自己的情況來調整。 – rdelmar