我正在开发iOS游戏并需要自定义动画,所以我使用的是这种方法
CGRect basketTopFrame = mainScreenView.frame;
basketTopFrame.origin.x = 320;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelay:.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
mainScreenView.frame = basketTopFrame;
[UIView commitAnimations];
在.h文件中的我已经像这样声明了mainScreen
IBOutlet UIView *mainScreenView;
所以在IB中我把UIView放在界面的视图中并用mainScreenView连接它
所以在mainViewScreen中,视图有时会显示有时不会(在第二次尝试时工作)然而当我删除动画代码时它工作得很好..我不知道发生了什么任何帮助将不胜感激谢谢
编辑 这就是我添加视图的方式
MainScreen *mainScreen = [[MainScreen alloc]initWithNibName:@"MainScreen" bundle:nil];
[mainScreenView addSubview:mainScreen.view];
答案 0 :(得分:0)
看起来你正试图将某些东西移出屏幕。一种更简单的方法就是这样做
[UIView beginAnimations:@"UIBase Hide" context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelay:.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
mainScreenView.transform = CGAffineTransformMakeTranslation(320,0); //slide view to the right.
[UIView commitAnimations];
注意:在翻译时使用320不会将视图移动到屏幕的第320个像素,而是将视图320px移动到右侧。因此,如果您的mainScreenView位于origin.x = 100.此翻译后,它现在为420.
要将其移回
self.transform = CGAffineTransformIdentity;
答案 1 :(得分:0)
我在沙盒项目中尝试过,这对我有用:
- (IBAction)buttonTouched:(id)sender {
myView.transform = CGAffineTransformMakeTranslation(-320, 0);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelay:.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
myView.transform = CGAffineTransformMakeTranslation(0,0);
[UIView commitAnimations];
}