首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

设置上部ViewController动画时显示ViewController的视图

是指在iOS开发中,通过对视图控制器(ViewController)进行动画设置,使得上部的视图控制器在切换或显示时具有动画效果。

在iOS开发中,可以使用UIView的动画方法来实现这一效果。具体步骤如下:

  1. 创建一个新的视图控制器(ViewController)作为上部视图控制器。
  2. 在当前视图控制器中,通过代码或者故事板(Storyboard)的方式,将上部视图控制器添加为子视图控制器。
  3. 在需要显示上部视图控制器的时候,使用UIView的动画方法来设置动画效果。

以下是一个示例代码,展示如何设置上部ViewController动画时显示ViewController的视图:

代码语言:txt
复制
// 创建上部视图控制器
let topViewController = TopViewController()

// 将上部视图控制器添加为子视图控制器
addChild(topViewController)
topViewController.view.frame = CGRect(x: 0, y: -view.frame.height, width: view.frame.width, height: view.frame.height)
view.addSubview(topViewController.view)
topViewController.didMove(toParent: self)

// 设置动画效果
UIView.animate(withDuration: 0.5) {
    topViewController.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)
}

在上述代码中,我们首先创建了一个名为TopViewController的上部视图控制器,并将其添加为当前视图控制器的子视图控制器。然后,通过UIView的animate(withDuration:animations:)方法设置动画效果,将上部视图控制器的视图从屏幕顶部滑动到屏幕可见区域。

这种设置上部ViewController动画时显示ViewController的视图的方式常用于实现导航栏、标签栏等界面元素的切换效果,提升用户体验。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/tccli
  • 腾讯云数据库服务:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器运维:https://cloud.tencent.com/product/cvm
  • 腾讯云音视频处理:https://cloud.tencent.com/product/vod
  • 腾讯云人工智能服务:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云存储服务:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙服务:https://cloud.tencent.com/product/tc3d
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mac开发跬步积累(二):NSViewController 转场动画精耕细作

设置容器视图颜色 containView.layer?.backgroundColor = NSColor.orange.cgColor } 5....) 2. dismiss动画,执行这个方法 ,在这个方法中可以实在自定义动画效果 public func animateDismissal(of viewController: NSViewController...设置将要显示视图初始frame modalView.frame = finalFrame modalView.setFrameOrigin(NSMakePoint(finalFrame.origin.x...动画效果 Summary(总结) 在macOS中,控制器转场切换无论是presentViewController方式或者transition方式,本质上都是将要显示控制器视图View,通过addSubView...自定义present 动画,需要注意事件穿透问题: 由于显示出来控制器视图(Controller View)是通过addSubView方式添加到容器视图中,因此在控制器视图(Controller

2.7K40

iOS翻页视图控制器UIPageViewController应用

iOS翻页视图控制器UIPageViewController应用 一、引言     UIPageViewController是iOS中少见动画视图控制器之一,通过它既可以创建类似UIScrollView...UIPageViewController类似一个视图容器,其中每个具体视图由各自ViewController进行维护管理,UIPageViewController只进行协调与动画布置。...dataArray addObject:model];     [self.view addSubview:_pageViewControl.view]; } //翻页控制器进行向前翻页动作 这个数据源方法返回视图控制器为要显示视图视图控制器...nil;     }else{         return _dataArray[index-1];     } } //翻页控制器进行向后翻页动作 这个数据源方法返回视图控制器为要显示视图视图控制器...@property (nonatomic, getter=isDoubleSided) BOOL doubleSided; //设置显示视图控制器 - (void)setViewControllers

2.2K10
  • iOS_Custom Transition Animation 自定义转场动画

    1、push-pop 动画协议 想要在 push 和 pop viewController 使用自定义转场动效,需要设置self.naviagtionController.delegate, 并实现...和 dismiss viewController 使用自定义转场动效,需要设置toViewController.transitioningDelegate, 并实现UIViewControllerTransitioningDelegate...toViewInitialFrame; // Add additional views required for animation and set initial values // 添加动画所需其他视图设置初始值...NO-fail } ---- 3.4 pop or dismiss animation (消失动画) 大致跟显示动画一致,转场动画都是需要显示toView, 让fromView消失 上面显示动画例子...{ return } // 2. set initial value for animation views and add to container view (设置动画视图初始值

    30321

    iOS快速连续push和pop 同一个ViewController,系统到底在干啥

    ,这里主要是构造多样VC 这里有3个push,一个pop,全都关闭了动画 我们通过对系统pop和push方法进行了HOOK,通过log个可以看出对应调用顺序,比如上面代码打印出log如下: 通过...self.navigationController popToRootViewControllerAnimated:NO];效果依然不变,这里就不截图了 以上来看,完全符合大家预期,但有个细节Animated全都是NO,Animated主要是动画效果...push和pop,但最后结果还是对 最后,再将第一、第二和第三个push和最后popAnimated置为yes,效果与上面一样,如此看来,pop动画是否开启不影响结果,pop本身就是最后一步,所以动画不是影响因素...这里说明当快速连续push pop同一个VC,没有动画,调用顺序没有异常,如果加入动画,push和pop均会多次调用,不同是,有效push和pop数不变 事实上,对系统pop进行探索,发现,...除了最后一次pop,返回vc为被popvc,其余返回值为nil,如果想抓取有效pop,看返回值是否为nil比较好方式。

    92210

    UINavigationController 导航控制器概念属性方法

    *barHideOnSwipeGestureRecognizer; 10、屏幕滑动时候是否隐藏导航栏,常用于tableView,上滑隐藏导航栏,下滑显示,带动画效果 @property (nonatomic...)animated; 3、管理视图控制器操作 (1)压入新视图控制器 - (void)pushViewController:(UIViewController *)viewController animated...= YES; [super pushViewController:viewController animated:animated]; } (2)弹出一个视图控制器 返回是popcontroller...didShowViewController:(UIViewController *)viewController animated:(BOOL)animated; (3)设置导航控制器支持设备方向...navigationControllerPreferredInterfaceOrientationForPresentation:(UINavigationController *)navigationController; (5)下面两个方法可以设置导航转场动画

    2.1K60

    iOS对UIViewController生命周期和属性方法解析

    7:viewDidLayoutSubviews:已经布局完成子视图。 8:viewDidAppare:视图完成显示时调用。 9:viewWillDisappear:视图将要消失时调用。...三、从storyBoard加载UIViewController实例传值陷阱         我们知道,当我们从StoryBoard中加载ViewController,我们在Controller中拖拽视图是可以被初始化...,这里面有一点需要我们注意,如果我们需要向controller中视图进行传值设置,通过以下方法得到Controller中,视图还没有被初始化创建出来:  ViewController2 * viewController2..."]; 我们可以在ViewController2storyBoard中拉一个label,然后关联到头文件中,如下打印,会发现我们得到controller,里面的视图对象并没有进行创建: ViewController2...,默认动画特效是像抽屉一样从手机屏幕下方向上弹起,当然,这个效果我们可以进行设置,UIViewController有如下一个属性来设置动画特效: @property(nonatomic,assign

    3K20

    大前端开发中路由管理之四:iOS篇

    ,UITabBarController         其中,容器类ViewController是这篇文章关注重点,因为他们管理着View显示逻辑。         ...UINavigationController* nav = [[UINavigationController alloc] init];//    新建两个ViewController,并设置他们View...这个参数就是询问你是否需要在页面切换时候加入动画。默认动画就是从右往左推出一个新页面。...                       animations:^{}                       completion:nil];         这个方法就可以自定义转场方式了,可以看见我们在这里设置动画时间是...如果自己实现一个容器类ViewController,就需要自己去给子视图控制器编码,保证每一个都必须是有独一无二 restorationIdentifier。

    1.9K40

    你可能需要为你 APP 适配 iOS11

    需要注意是,你constraints需要在view内部设置,所以如果你有一个自定义标题视图,你需要确保任何约束只依赖于标题视图及其任何子视图。当你使用自动布局,系统假设你知道你在做什么。...自从引入layout margins,当将一个view添加到viewControllerviewController会修复viewlayoutMargins为UIKit定义一个值,这些调整对外是封闭...来改变safeAreaInsets值,当你viewController改变了它safeAreaInsets值,有两种方式获取到回调: 三、UIScrollView and UITableView...值变化,如果是有动画是观察这两个属性变化进行,就会造成动画异常,因为在估算行高机制下,contentSize值是一点点地变化更新,所有cell显示完后才是最终contentSize值。...滑动操作这里还有一个需要注意是,当cell高度较小时,会只显示image,不显示title,当cell高度够大,会同时显示image和title。

    2.5K00

    你可能需要为你APP适配iOS11

    需要注意是,你constraints需要在view内部设置,所以如果你有一个自定义标题视图,你需要确保任何约束只依赖于标题视图及其任何子视图。当你使用自动布局,系统假设你知道你在做什么。...自从引入layout margins,当将一个view添加到viewControllerviewController会修复viewlayoutMargins为UIKit定义一个值,这些调整对外是封闭...来改变safeAreaInsets值,当你viewController改变了它safeAreaInsets值,有两种方式获取到回调: 三 UIScrollView and UITableView...值变化,如果是有动画是观察这两个属性变化进行,就会造成动画异常,因为在估算行高机制下,contentSize值是一点点地变化更新,所有cell显示完后才是最终contentSize值。...滑动操作这里还有一个需要注意是,当cell高度较小时,会只显示image,不显示title,当cell高度够大,会同时显示image和title。

    82120

    将模型添加到场景中 - 在您环境中显示3D内容

    添加按钮 我们想在视图中添加一个按钮,用作在场景中添加模型触发器。从对象库中,将UIButton拖动到场景视图顶部。在“ 属性”检查器中,删除“ 按钮”标题并将图像设置为“ 按钮/添加”。...我们刚刚完成了这个功能,现在,我们准备在点击按钮在场景中显示我们模型。...焦点方块隐藏/显示选项 当我们在屏幕上显示模型,我们仍然看到焦点方块干扰了我们漂亮模型。如果我们在安置后隐藏它,你怎么说?...在FocusSquare类中,让我们创建一个函数来为焦点方块表示设置动画。将隐藏和显示两种情况,因此隐藏值是布尔值。然后我们声明一个SCNAction用于淡入淡出,淡出用于隐藏和淡入显示。...结论 经过漫长旅程,我们终于将我们模型添加到我们环境中,好像它们属于它。我们在本节中也学到了其他有用概念。我们在故事板中定制了我们视图,并在代码中播放动画

    5.5K20

    视觉效果 -- iOS Core Animation 系列三

    通过上面的示例可以发现: 只设置cornerRadius,默认情况下,只影响背景颜色,而不影响背景图片或者子图层。 如果想要截取这个视图图片和子视图,需要设置masksToBounds为YES。...shadowOpacity属性控制阴影透明度,它是一个在0.0和1.0之间浮点数,如果设置为1.0将会显示一个轻微模糊阴影。...这显示效果有点怪。右边设置了alpha为0.5。但是在UILabel位置好像不是0.5效果。这是因为透明度混合叠加造成。实际上右侧中间透明度是0.75。...当显示一个50%透明度图层,图层每个像素都会一半显示自己颜色,另一半显示图层下面的颜色。这是正常透明度表现。...但是如果图层包含一个同样显示50%透明子图层,你所看到视图,50%来自子视图,25%来了图层本身颜色,另外25%则来自背景色。 如果想保持透明度一直。

    1.1K30

    你可能需要为你 APP 适配 iOS 11

    ,navigation bar就会在整个APP中显示大标题,如果想要在控制不同页面大标题显示,可以通过设置当前页面的navigationItemlargeTitleDisplayMode属性; typedef...需要注意是,你constraints需要在view内部设置,所以如果你有一个自定义标题视图,你需要确保任何约束只依赖于标题视图及其任何子视图。当你使用自动布局,系统假设你知道你在做什么。...自从引入layout margins,当将一个view添加到viewControllerviewController会修复viewlayoutMargins为UIKit定义一个值,这些调整对外是封闭...,就会造成动画异常,因为在估算行高机制下,contentSize值是一点点地变化更新,所有cell显示完后才是最终contentSize值。...,当cell高度较小时,会只显示image,不显示title,当cell高度够大,会同时显示image和title。

    1.7K60

    iOS系统中导航栏转场解决方案与最佳实践

    导航栏样式变化 对于不同 ViewController 之间导航栏样式变化,大多可以总结为两种情况: 导航栏显示与否 导航栏颜色变化 导航栏显示与否 对于显示与否问题,可以在上一节提到两个方法里调用...ViewController 视图第一个子控件是 UIScrollView 类型视图ViewController 是 navigation 或者 tab 类型控制器视图控制器。...等到页面 B 调用 viewDidAppear: 时候,转场库会将假导航栏样式设置到真的导航栏中,并将假导航栏从视图层级中移除,最终将真的导航栏显示出来。...等到页面 A 调用 viewDidAppear: 时候,转场库会将假导航栏样式设置到真的导航栏中,并将假导航栏从视图层级中移除,最终将真的导航栏显示出来。...转场动画与导航栏隐藏动画一致性 如果在转场过程中还会显示或者隐藏导航栏的话,请保证两个方法动画参数一致。

    2.4K30

    iOS开发UINavigation系列四——导航控制器UINavigationController

    :(UIViewController *)rootViewController; 通过以下方法对视图控制器进行管理操作: //设置管理视图控制器 - (void)setViewControllers:...:(UIViewController *)viewController animated:(BOOL)animated; //弹出一个视图控制器 返回是popcontroller - (nullable...) BOOL hidesBarsWhenKeyboardAppears; //屏幕滑动时候隐藏导航栏,常用于tableView,上滑隐藏导航栏,下滑显示,带动画效果 @property (nonatomic...:(UIViewController *)viewController animated:(BOOL)animated; //设置方法设置导航控制器支持设备方向 - (UIInterfaceOrientationMask...navigationControllerPreferredInterfaceOrientationForPresentation:(UINavigationController *)navigationController NS_AVAILABLE_IOS(7_0); //下面两个方法可以对导航转场动画进行设置

    1.8K20

    图层几何学 -- iOS Core Animation 系列二

    视图frame、bounds、center属性仅仅是存取方法,当操纵视图frame,实际上是在改变视图对应CALayerframe, 不能独立于图层之外改变视图frame....2.1 示例 为了学习这个anchorPoint属性,下面创建一个闹钟示例demo。 资源文件我是从原文上截图下来 ? 创建4个UIImageView并设置好约束(都是居中显示)。 ?...zPosition属性大多数不常用,除了三维动画之外,它最实用功能是可以改变图层显示顺序。 3.2 zPosition演示代码 我们演示下改变zPosition会怎么改变视图显示顺序。...首先我在SB中设置两个视图,如下图: ? 如果我们不做任何操作,运行后,两个视图显示顺序就是我们现在设置这样。...但是假如我们对yellowView设置zPosition,哪怕很小值,都会发现显示顺序反了。

    60830

    UI篇-UITabBar及其相关其他知识

    selectedViewController属性 通过该属性可以获得当前选中viewController 每个视图控制器都有一个tabBarController属性,通过它可以访问所在UITabBarController...每个视图控制器都有一个tabBarItem属性,通过它控制视图在UITabBarControllertabBar中显示信息。...self.hidesBottomBarWhenPushed = YES; } //如果在push跳转需要隐藏tabBar,需要在最外层VC中跳转之前设置 // block 回调中跳转 需要紧紧写在跳转前后...只需在第一层页面向第二层页面跳转地方设置一次即可,第二层向第三层跳转不需要再次设置,当然,想在第三层页面上显示出 tabbar,设置.hidesBottomBarWhenPushed = NO也是不可能出效果...自定义TbarBar 视图切换动画关键方法(后续会整理出视图切换动画实现) - (id )tabBarController

    2K20
    领券