10 iphone
所以我刚开始为iphone开发一些简单的应用程序.我会说我相当肯定我对多个视图的编程没有很强的理解,但我正在努力学习.
我有一个程序,最初是一个基于普通窗口的应用程序,所以我可以手写一切,希望能够更多地了解我正在做的事情.我有一个视图控制器,用于根据每个其他视图控制器的请求加载和释放视图.没有元素从一个视图持续到另一个视图.
我目前工作正常,但我想在视图更改中添加动画.一个简单的推动画是我的目标.随着新观点的推进,一种观点推出.
看看CATransitions并尝试这个,我有一个工作版本(目前用于推动顶部/底部)
[thisView.view removeFromSuperview];
[thisView release];
thisView = [[MenuViewController alloc] initWithNibName:@"MenuView" bundle:nil];
[self.view addSubview:thisView.view];
CATransition *animation = [CATransition animation];
[animation setDuration:6.3];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromTop];
[animation setRemovedOnCompletion:YES];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]];
[[self.view layer] addAnimation:animation forKey:nil];
Run Code Online (Sandbox Code Playgroud)
据我所知,这是使用CATransition的非常标准的代码,它可以完成我需要的工作,一个视图在另一个视图进入时被推高.但是我的问题是,每个视图都会出现淡入淡出的情况.他们分别进来或出去看.
因此 - 在这个例子中; 当菜单从底部向上推时,它将从白色慢慢淡入,并且当前一个视图离开屏幕时,它将慢慢淡入白色.
请注意,持续时间设置为6,以便褪色是戏剧性的.
有没有办法消除这里的褪色,以便每个视图在进出的路上保持稳固?或者我在这条路线上完全错过了标记?
我感谢任何帮助.道歉我一直啰嗦.
我一直无法找到解决这个问题的方法,但我可以提供一个合理的解决方法。发生的情况是它不是褪色为白色,而是褪色为透明,并且窗口背景(或后面的任何视图)是白色的。有几种方法可以解决这个问题:
更改窗口背景颜色。如果您要淡入淡出的两个视图具有相同的纯色背景色,那么这看起来会相当不错。
不要在每个视图(例如“MenuView”)中渲染背景,而是始终在这些视图下有一个共享背景视图。
请注意,这并非在所有情况下都有效——UITableView例如,分组总是完全不透明的。
(正如我附注的那样,我假设您没有构建基于导航的应用程序,在这种情况下,所有动画都应该自动处理。)
如果您还没有将其作为在视图之间转换的另一种方式,UIView您可能还需要考虑查看该方法(尽管它不能执行滑动动画,如果您已设置的话)。setAnimationTransition:forView:cache:
| 归档时间: |
|
| 查看次数: |
7930 次 |
| 最近记录: |