首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mac中“视图控制器”的简单切换(类似于iOS)

Mac中“视图控制器”的简单切换(类似于iOS)
EN

Stack Overflow用户
提问于 2011-01-31 10:09:58
回答 2查看 9.7K关注 0票数 6

我来自一个iOS背景,是Mac (coco应用程序)开发的新手。

从苹果示例代码项目"简单可可应用程序“开始,我希望能够以类似于iOS应用程序的任何方式在不同的”视图控制器“之间切换,甚至在NSViews之间切换。

不幸的是,我找不到实现这一目标的方法--互联网上缺乏与关键词相关的资源,比如“可可应用程序中的视图切换、mac应用程序中的视图切换、mac应用程序开发教程”……

你们中有谁知道一个教程吗?实际上,涵盖了--在视图之间切换的问题?或者你可能知道有什么快速的方法可以在你的堆栈溢出答案中解释?

概念的证明

一个非常简单的概念证明可以是以下几点。在一个简单的应用程序中,有两个视图-屏幕1(当前显示)和屏幕2(隐藏屏幕):

步骤1)启动应用程序,屏幕1出现(包含标签“屏幕1”和按钮“下一步”)

第二步)按下按钮

步骤3)屏幕1在屏幕外的幻灯片

步骤4)屏幕2幻灯片(包含单一标签“屏幕2")

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-31 10:22:23

核心动画并没有像在iOS上那样深入地集成在OS中。因此,你需要自己做很多事情。您可以做的是使用窗口的contentView作为超级视图,然后执行以下操作以切换到另一个视图(动画)。

代码语言:javascript
复制
- (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];
}

然而,这不会给你带来你想要的效果。如果您希望它具有某种移动效果,则必须包含QuartzCore.framework并执行以下操作:

代码语言:javascript
复制
- (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中:您只需使用:

代码语言:javascript
复制
[[mainView animator] addSubView:newSubView];
票数 17
EN

Stack Overflow用户

发布于 2011-01-31 11:27:53

您可能想通过Perspx检查PXNavigationBar,它可以在更多的iOS中处理您的情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4849639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档