Tom*_*myG 4 iphone view objective-c uitabbarcontroller uiview
我做了一些关于这个的讨论,但似乎没有什么能回答我的特定问题(甚至没有这个问题:是否可以用动画删除SuperSuperview?).
基本上,我的应用程序以欢迎屏幕开始,用户点击"登录",然后转到登录视图,然后转到标签栏视图,这是实际的应用程序.
我这样做的方法是,我编写了一个自定义类 - TabBarController,它设置了所有选项卡及其各自的视图控制器.现在,当用户点击"登录"时,我正在调用removeFromSuperview并显示标签栏.
我试图找到一种方法来设置从登录页面到标签栏的过渡动画.我在这里尝试了一些提议的解决方案,但似乎都没有做到这一点.这是我在signin.m视图控制器中的代码.我希望为当前视图制作动画(理想情况下,不仅仅是淡出,而是更多很酷的东西,如翻转等).
//when done signing in --> go to the tab bar view
-(IBAction)done:(id)sender {
TabBarController *tabController = [[TabBarController alloc] init];
[UIView beginAnimations:@"removeWithEffect" context:nil];
[UIView setAnimationDuration:4.0];
self.parentViewController.view.frame = CGRectMake(0,0,320,480);
self.parentViewController.view.alpha = 1.0f;
[UIView commitAnimations];
[self.parentViewController.view performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:2.5f];
[self presentModalViewController:tabController animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
感谢任何帮助!
yin*_*kou 11
那不可能那样.presentModalViewController在自己的视图上展开viewController的视图.它不会替换源viewController(self).由于从视图层次结构中删除了self.parentViewController.view,因此无法以模态方式显示tabController,因为已删除self.
无论如何,我会建议你另一种方法来实现你的视图布局:创建一个tabBarViewController并将其视图添加到rootView(app委托中的self.window或你现在使用的任何东西).然后将您的登录视图添加到同一视图.由于视图层次结构,登录视图将显示在tabBar.view上方.完成按钮应该以这种方式实现:(我正在使用动态块语法)
-(IBAction)done:(id)sender {
[UIView animateWithDuration:1.0
animations:^{
self.view.frame = CGRectMake(0, 480, 320, 480);
self.view.alpha = 0.0
}
completion:^(BOOL finished){
[self.view removeFromSuperView];
}
];
}
Run Code Online (Sandbox Code Playgroud)
您可以制作更多内容,而不仅仅是alpha,大小或位置.只需查看文档中的动画即可.我想,你会对view.transform感兴趣提交翻转动画.;)
| 归档时间: |
|
| 查看次数: |
3337 次 |
| 最近记录: |