
从苹果示例代码项目“Simple Cocoa App”开始,我希望能够以任何类似于iOS应用程序的方式在不同的“视图控制器”之间切换,甚至只在NSVIEw之间切换.
不幸的是,我无法找到实现这一目标的方法 – 互联网缺乏与关键词相关的资源,例如“在可可应用中查看切换,在mac应用程序中切换视图,mac app dev教程”……
你们中的任何人都知道一个教程,而这里是踢球者,实际上涵盖了在视图之间切换的问题吗?或者也许知道你可以在Stack Overflow答案中解释的任何快速方法?
概念证明
一个非常简单的概念验证可能如下.在一个简单的应用程序中,有两个视图 – 屏幕1(当前显示)和屏幕2(隐藏屏幕外):
步骤1)启动应用程序,出现屏幕1(包含标签“屏幕1”和按钮“转到下一步”)
步骤2)按下按钮
步骤3)屏幕1在屏幕外滑动为
步骤4)屏幕2幻灯片(包含单个标签“屏幕2”)
谢谢.
解决方法 Core Animation并没有像在iOS上那样深入集成在OS X中.因此,您需要自己做很多事情.
你可以做的是使用窗口的contentVIEw作为超级视图,然后执行以下 *** 作切换到另一个视图(动画).
- (voID)switchSubVIEws:(NSVIEw *)newSubvIEw{ NSVIEw *mainVIEw = [[self window] contentVIEw]; // use a for loop if you want it to run on older OS's [mainVIEw removeAllSubVIEws]; // fade out [[mainVIEw animator] setAplhaValue:0.0f]; // make the sub vIEw the same size as our super vIEw [newSubVIEw setFrame:[mainVIEw bounds]]; // *push* our new sub vIEw [mainVIEw addSubVIEw:newSubVIEw]; // fade in [[mainVIEw animator] setAlphaValue:1.0f];} 但是,这不会给你你想要的效果.如果你想让它给它一个sorta移动效果你必须包括QuartzCore.framework并执行以下 *** 作:
- (voID)prepareVIEws{ // this method will make sure we can animate in the switchSubVIEwsMethod CATransition *Transition = [CATransition animation]; [Transition setType:kCATransitionPush]; [Transition setSubtype:kCATransitionFromleft]; NSVIEw *mainVIEw = [[self window] contentVIEw]; [mainVIEw setAnimations:[NSDictionary dictionaryWithObject:Transition forKey:@"subvIEws"]]; [mainVIEw setWantsLayer:YES];} 然后在switchSubVIEws中:你只需要使用:
[[mainVIEw animator] addSubVIEw:newSubVIEw];总结
以上是内存溢出为你收集整理的可可 – 在Mac应用程序中轻松切换“视图控制器”(类似于iOS)全部内容,希望文章能够帮你解决可可 – 在Mac应用程序中轻松切换“视图控制器”(类似于iOS)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)