我在我的iOS應用程序中翻轉兩個子視圖時遇到了困難。它的設置方式是我在界面文件中創建了一個視圖。當視圖加載時,視圖1應該出現在該視圖中(通過使用addSubview
來實現)。當在View1上按下按鈕時,它應該翻轉以顯示view2。在容器視圖中翻轉子視圖
在StackOverflow上的各種問題,我實現了下面的代碼:
-(void)LetUsFlip
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:_containerView cache:YES];
if ([self.view1 superview])
{
NSLog(@"Show View 2");
[view1 removeFromSuperview];
[_containerView addSubview:view2];
[_containerView sendSubviewToBack:view1];
}
else
{
NSLog(@"Show View 1");
[view2 removeFromSuperview];
[_containerView addSubview:view1];
[_containerView sendSubviewToBack:view2];
}
[UIView commitAnimations];
}
當我運行這段代碼,第一翻轉動畫正常工作,即查看2所示按下按鈕。但是當我再次按下視圖2中的按鈕時,動畫發生並且視圖1是而不是顯示 - 給出空白屏幕。 View1和View2上的按鈕分別調用上述方法。 NSLog也完全按照它應該的方式工作,但是在動畫方面存在問題。
謝謝。
如何聲明'view1'和'view2'?弱,強? – zoul
嗨zoul,它的聲明爲:@property(弱,非原子)IBOutlet UIScrollView * view1; –