当前位置:  开发笔记 > IOS > 正文

如何在Cocoa程序中将视图滑入和滑出窗口

如何解决《如何在Cocoa程序中将视图滑入和滑出窗口》经验,为你挑选了1个好方法。

我希望在窗口上有一个视图,并且响应一条消息(按钮点击或菜单),我希望在其上方向下滑动另一个视图,并让第一个视图调整大小.

我想离开这个:

**********************************
*                                *
*--------------------------------*
*|                              |*
*|        view 1                |*
*|                              |*
*--------------------------------*
*                                *
**********************************

对此:

**********************************
*                                *
*--------------------------------*
*|        view 2                |*
*--------------------------------*
*--------------------------------*
*|        view 1                |*
*--------------------------------*
*                                *
**********************************

我不一定在寻找代码,从哪里开始的想法将不胜感激.

这适用于桌面应用.



1> Craig Otis..:

CoreAnimation绝对是您最好的选择.自从我使用任何CA代码以来已经有一段时间了,但是类似于:

[UIView beginAnimations:@"slideOn" context:nil];

firstView.frame = shrunkFirstViewRect; // The rect defining the first view's smaller frame. This should resize the first view

secondView.frame = secondViewOnScreenFrame; // This should move the second view on the frame. 

[UIView commitAnimations];

稍后,您可以使用以下命令返回单个视图:

[UIView beginAnimations:@"slideOff" context:nil];

firstView.frame = normalFirstViewRect; // The rect defining the first view's normal frame. This should expand the first view.

secondView.frame = secondViewOffScreenFrame; // Move the second view off the screen

[UIView commitAnimations];

编辑:以上代码适用于iPhone,我读了你的问题有点快.

在Mac上,您可能希望使用(类似地):

[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:1.0f]; // However long you want the slide to take

[[firstView animator] setFrame:shrunkFirstViewRect];

[[secondView animator] setFrame:secondViewOnScreenFrame];

[NSAnimationContext endGrouping];


UIKit仅适用于iPhone,而不适用于Mac.在Mac上,您需要使用NSAnimationContext进行分组,并使用eachView.animator.frame而不是eachView.frame.
推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有