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

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

在Cocoa程序中,要将视图滑入和滑出窗口,可以使用NSAnimationContextNSViewAnimation类。下面是一个简单的示例代码,展示了如何实现这个功能:

代码语言:swift
复制
import Cocoa

class ViewController: NSViewController {

    @IBOutlet weak var containerView: NSView!
    var targetView: NSView!

    override func viewDidLoad() {
        super.viewDidLoad()

        targetView = NSView(frame: NSRect(x: 0, y: 0, width: 200, height: 200))
        targetView.wantsLayer = true
        targetView.layer?.backgroundColor = NSColor.red.cgColor

        containerView.addSubview(targetView)
    }

    @IBAction func slideIn(_ sender: Any) {
        let animation = NSViewAnimation(viewAnimations: [
            NSViewAnimation.ViewAnimation(targetView: targetView, startingFrame: NSRect(x: -200, y: 0, width: 200, height: 200), endingFrame: NSRect(x: 0, y: 0, width: 200, height: 200))
        ])

        animation.duration = 0.5
        animation.start()
    }

    @IBAction func slideOut(_ sender: Any) {
        let animation = NSViewAnimation(viewAnimations: [
            NSViewAnimation.ViewAnimation(targetView: targetView, startingFrame: NSRect(x: 0, y: 0, width: 200, height: 200), endingFrame: NSRect(x: 200, y: 0, width: 200, height: 200))
        ])

        animation.duration = 0.5
        animation.start()
    }
}

在这个示例中,我们创建了一个名为ViewController的类,它继承自NSViewController。我们在viewDidLoad方法中创建了一个名为targetViewNSView对象,并将其添加到containerView中。然后,我们创建了两个IBAction方法,分别用于将视图滑入和滑出窗口。

slideIn方法中,我们创建了一个NSViewAnimation对象,并设置了动画的持续时间为0.5秒。在NSViewAnimation.ViewAnimation对象中,我们指定了要进行动画的视图(targetView),以及起始和结束的坐标。然后,我们调用start()方法来启动动画。

slideOut方法中,我们使用相同的方法来创建一个NSViewAnimation对象,但是这次我们将视图的起始和结束坐标设置为相反的方向。这样,当我们调用start()方法时,视图将从窗口中滑出。

这个示例代码展示了如何在Cocoa程序中使用NSAnimationContextNSViewAnimation类来实现视图的滑入和滑出效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Slidepad for Mac(高效率办公软件)v1.3.9激活版

Slidepad Mac版是Mac平台上的一款高效率办公软件,Slidepad for Mac下载可以在你的Mac电脑上设置一个侧边窗口,类似于iPad的功能,在那里你可以放置你最喜欢的网络应用程序网站...图片Slidepad for Mac(高效率办公软件)Slidepad mac版软件功能1、窗口窗户通过滑入滑出,Slidepad为您的Mac带来iPad风格的多任务处理。...2、一个简单的侧边栏,可在应用之间切换Slidepad从FranzStation借用了侧边栏的概念。它比标签更平滑,它可以帮助您快速切换不同的Web应用程序。...3、多功能框允许您打开任何网站,教程或PDF与其他类似的应用程序不同,Slidepad上的内容没有限制。您可以键入任何关键字,URL,就像您在常见浏览器中所做的那样!

44820
  • OpenHarmony动画详解

    属性参数名称参数类型必填参数描述slideSlideEffect否设置页面转场时的滑入滑出效果。 默认值:SlideEffect.Righttranslate{ x?...默认值:1SlideEffect 枚举说明名称描述Left设置到入场时表示从左边滑入,出场时表示滑出到左边。Right设置到入场时表示从右边滑入,出场时表示滑出到右边。...Top设置到入场时表示从上边滑入,出场时表示滑出到上边。Bottom设置到入场时表示从下边滑入,出场时表示滑出到下边。事件事件功能描述onEnter(event: (type?...: boolean }**说明:**path 中支持使用 start end 进行起点终点的替代,: 'Mstart.x start.y L50 50 Lend.x end.y Z'{ '',...HorizontalAlign.Start : HorizontalAlign.Center) }}窗口动画窗口动画管理器,可以监听应用启动退出时应用的动画窗口,提供启动退出过程中控件动画应用窗口联动动画能力

    13920

    iOS学习——iOS 整体框架及类继承框架图

    ,解释一下,官方文档中将OS体系分为四层,如下图所示,没有Cocoa Touch LayerApplication Layer,取而代之的是Cocoa (Application) Layer。...二 Cocoa框架的类继承体系   Cocoa框架是iOS应用程序的基础,是OS X iOS操作系统的程序的运行环境,了解Cocoa框架,对开发iOS应用有很大的帮助。...2.2 UIKit框架类继承体系   UIKitk框架提供一系列的Class(类)来建立管理iOS应用程序的用户界面( UI )接口、应用程序对象、事件控制、绘图模型、窗口视图用于控制触摸屏等的接口...框架的入口: #import   ,当引入此头文件后,便可以在程序里使用任何在UIKit里声明的类。(PS: 当然还要把这个框架链接到你的应用程序中)。...),表混淆了)     应用程序可以通过三种方式使用UIKit创建界面:   在用户界面工具(interface Buidler)从对象库里 拖拽窗口视图或者其他的对象使用。

    3.5K70

    深入了解 SwiftUI 5 中 ScrollView 的新功能

    它只会影响最近的一个视图。 对于全面屏的额外安全区域,safeAreaInset safeAreaPadding 的处理逻辑不一致。...应将此修饰符应用于 ScrollView 中包含主要重复内容的布局容器, LazyHStack 或 VStack。...当子视图滑入滑出包含它的滚动视图的可视区域时,scrollTransition 会对该视图应用给定的过渡动画,并在不同阶段之间平滑地过渡。...目前定义了三种阶段状态(Phase): topLeading: 视图滑入滚动容器的可见区域 identity: 表示视图目前在可见区域中 bottomTrailing: 视图滑出滚动容器的可见区域 scrollTransition...值得赞赏的是,他们不仅提供了一些一直期待的功能,而且在 API 的设计实现完成度上都非常出色。

    83620

    程序开发基础-swiper 滑块视图容器

    标题图 小编 / 达叔小生 参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/ 小程序开发基础-swiper 滑块视图容器...根据官方文档,在自己的程序上运行,并打进代码的效果图,swiper滑块视图容器,是用来展示图片,控制图片的 效果图 swiper为滑块视图容器,其实就是轮播图的效果。...就是第一张图片切换到第二张图片的时长,即第一张滑出,第二张滑入到完,所用的时间长而已。 circular="{{circular}}"为是否采用衔接滑动,怎么理解呢?衔接?...interval 表示自动切换时间间隔 duration 表示为滑动动画时长 circular 表示是否采用衔接滑动 previous-margin 表示前边距,用于露出前一项的一小部分,接受 px ...Star、Fork 结语 本文主要讲解 小程序开发基础-swiper 滑块视图容器 下面我将继续对其他知识 深入讲解 ,有兴趣可以继续关注

    1.9K20

    如何用 vue 制作一个探探滑动组件

    前言 嗨,说起探探想必各位程序汪都不陌生(毕竟妹子很多),能在上面丝滑的翻牌子,探探的的堆叠滑动组件起到了关键的作用,下面就来看看如何用vue写一个探探的堆叠组件。...一、功能分析 简单使用下探探会发现,堆叠滑动的功能很简单,用一张图概括就是: 简单归纳下里面包含的基本功能点: 图片的堆叠 图片第一张的滑动 条件成功后的滑出,条件失败后的回弹 滑出后下一张图片堆叠到顶部...Math.abs(this.temporaryData.poswidth * ratio) this.temporaryData.opacity = 0 // 不满足条件则滑入...this.temporaryData.posheight = 0 this.temporaryData.opacity = 1 }) // 不满足条件则滑入...使用在stack中具体要做的是: touchmove中计算出所需角度方向 touchend及onTransitionEnd中将角度至零 判定滑出面积比例,主要通过偏移量计算出偏移面积,从而得到面积比例

    3K130

    Mac开发之 Cocoa 绑定 入门

    ). 2.为什么使用绑定在日常开发中,我们为了项目代码更易于维护,会将程序代码划分为独立模块或封装类,其中最基础的就是使用模型(M)-视图(V)-控制器(C)进行协调工作.然而,在某些情况下,编写相互分离的模型...好了,基础概念就先介绍到这里,我们先通过一个简单的示例来具体了解绑定操作~ (1) 新建一个Cocoa应用程序,(示例开发语言使用Swift) 新建Cocoa应用 (2) 添加一个Person类,并添加一个...score数值发生变化的时候,绑定系统就会通知Label更新Values的内容) 设置Label绑定 (6) 绑定Slider到控制器的son属性的score值 设置Slider绑定 运行一下应用,并在窗口中拖动...添加代码 当son的score值发生变化时,LabelSlider会同时更新它们的显示.我们没有在视图和数据直接添加任何数据传递的代码,就完成了它们之间的相互联系,由此可见,cocoa绑定为我们节省了代码量...通过cocoa 绑定,我们没有写一行代码就实现了记录用户设置的功能~ cocoa中还为我们提供了其他的控制器对象来处理应用程序中的数据访问,比如NSArrayController,可以处理一组数据集合,

    1.9K20

    【IOS开发进阶系列】iOS系统架构专题

    像UIKit框架,它为应用程序提供了各种可视化组件,比如像窗口(Window)、视图(View)按钮组件(UIButton)。...Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,访问用户通信录功能框架、获取照片信息功能的框架、负责加速感应器三维陀螺仪等硬件支持的框架。...a) Activity Manager(活动管理器)        管理各个应用程序生命周期以及通常的导航回退功能  b) Window Manager(窗口管理器)        管理所有的窗口程序...iPhoneOS中的每一个应用采用这个框架实现如下核心功能:  应用管理;  支持图形窗口;  支持触摸事件处理;  用户接口管理; 提供用来表征标准系统视图控件的对象; 支持文本Web内容; 通过...任何时候,开发者可以采用UIKit框架中已有的视图功能以及预定义的图像来开发iPhone应用。然而,当UIKit框架中的视图功能不能满足需求时,开发者可以应用下面描述的技术方法来制作视图

    1.4K41

    简述OC语言

    : [obj makeText]; objc_msgSend(obj,@selector(makeText)); 编译器执行上述转换。...Runloop在你要和线程有更多的交互时才需要,比如以下情况: 1.使用端口或自定义输入源来其他线程通信; 2.使用线程的定时器; 3.Cocoa中使用任何performSelector...的方法;...响应者链有以下特点: 1、响应者链通常是由视图(UIView)构成的; 2、一个视图的下一个响应者是它视图控制器(UIViewController)(如果有的话),然后再转给它的父视图(Super...View); 3、视图控制器(如果有的话)的下一个响应者为其管理的视图的父视图; 4、单例的窗口(UIWindow)的内容视图将指向窗口本身作为它的下一个响应者,Cocoa Touch应用不像Cocoa...2、applicationWillResignActive:在应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用, 按下 home 按钮,返回主屏幕,或全屏之间切换应用程序等。

    2.1K20

    macOS AppKit 的事件响应简介

    一个窗口对象(NSWindow)处理窗口级别的事件(window-level events)以及将其他事件传递给窗口中的视图对象,同时一个NSWindow还允许通过它的delegate实现自定义窗口的行为方式...2.驱动程序将操作数据准备好之后,会调用macOS内核系统的I/O Kit,生成一个硬件级别的事件. 3.驱动程序将这个事件发送到macOS系统的窗口服务的事件队列中. 4.驱动程序通知macOS的窗口服务...每个应用都有一种明确的机制用来确保从操作系统的窗口服务中获取事件(Event).在Cocoa Application中,这种机制叫做runloop(一个NSRunLoop对象,它允许进程接收窗口服务的各种来源...:方法 键盘事件派发路径 响应键盘输入是事件派发中最复杂的部分之一.Cocoa 应用程序会遍历每一个键盘事件来确定它属于那种类型然后以及如何处理.先来看一下苹果官方给出的一个键盘事件可能的传递传递路径:....在Cocoa 的一些类中,比如 NSButton, NSMenu, NSMatrix, NSSavePanel 都提供了默认的响应处理.

    2.7K60

    Objective-C面试的常见问题

    只需要告诉它执行什么任务的时候,使用GCD 当你想使用一些在GCD中不容易复制的特性,更容易地添加任务的依赖关系使用NSOperation,并且可以很方便地取消一个NSOperation的执行 ---- 3、CoreData ...CoreData是一种模型层技术,帮助你建立程序状态的模型层。CoreData也是一种持久化技术,能将模型对象的状态持久化到磁盘。...一般来说,第一响应者是视图对象或者其子类对象,当其被触摸后事件由他自己处理,如果它不处理,事件就会被传递给他的视图控制器处理,然后是它的父视图(super View)对象,以此类推,直到顶层视图,接下来会沿着顶层视图...(top View)到窗口(UIWindow对象)再到程序(UIApplication对象)。...一定是一个类方法 一定有返回值 返回值类型 (id, instancetype) 便利构造器:+号方法 自定义初始化方法的区别 自定义初始化方法(init) 初始化+赋值 遍历构造器: 开辟空间+

    62230

    XcodeXcode 9 的全新功能您会喜欢的工具。内建 Interface BuilderXcode IDE

    Xcode 与 Cocoa Cocoa Touch 框架紧密集成,为您带来效率惊人的开发环境,助您为 Mac、iPhone、iPad、Apple Watch Apple TV 构建 app。...只需将窗口、按钮、文本字段其他对象拖放到设计画布上,即可创建有效的用户界面。...Cocoa Cocoa Touch 使用“模型-视图-控制器”模式构建,因此可以轻松地独立设计界面,不受实现方式的限制。...用户界面实际上是 CocoaCocoa Touch 归档对象(保存为 .nib 文件),当 app 运行时,macOS iOS 会自动在 UI 与代码之间建立关联。 ?...macOS 包含的其他工具 命令行工具 下载 macOS SDK,标题构建工具 ( Apple LLVM 编译器 Make)。

    8.3K30

    iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

    如果用户可以在你的应用程序打开超过20个视图,请考虑给视图一个不同的展示方式,以提供关于视图的详细信息,使其支持不连续的导航。 在打开视图的底部边缘屏幕的底部边缘里垂直居中页面控件。...API提示: 想要了解如何在代码中定义文本框,以及在文本框中支持图片按钮,可以参考UITextField....举个例子,你可以在文本框的左侧或者右侧加入自定义图形,或者加入系统按钮,书签按钮等。一般来说,文本框的左侧用于表述文本框的含义,而右侧用于展示附加的功能,书签。...此外,用户在滚动的过程中将很有可能误点其它按钮。 4.4.3模态视图 模态视图是一个以模态形式展现的视图,它为当前任务或当前工作流程提供独立的、自包含的(self-contained)功能。 ?...关于这一点,你可以指定以下任意一种过渡动画: 垂直出现(Vertical).模态视图从底部边缘滑入屏幕,也同样从屏幕底部滑出(默认模式)。 弹出(Flip).当前视图从右往左水平滑动,露出模态视图

    13.2K30

    JQuery实现图片切换(自动切换+手动切换)

    (显示面积) var len = $("#focus ul li").length; //获取焦点图个数 var index = 0; var picTimer; //以下代码添加数字按钮按钮后的半透明条...preNext next'>"; $("#focus").append(btn); $("#focus .btnBg").css("opacity",0.5); //为小按钮添加鼠标滑入事件...即所有li元素都是在同一排向左浮动,所以这里需要计算出外围ul元素的宽度 $("#focus ul").css("width",sWidth * (len)); //鼠标滑上焦点图时停止自动播放,滑出时开始自动播放...animate({"opacity":"1"},300);//为当前的按钮切换到选中的效果 } });      具体效果可以参看 效果演示      这里先给大家一个开胃菜,后面会抽时间简单说一下如何在...RunJS上发布自己的小程序以及使用RunJS的一些小技巧。

    6.5K20

    Android开发笔记(一百零一)滑出式菜单

    可移动页面MoveActivity 滑出式菜单从界面上看,像极了一个水平滚动视图HorizontalScrollView,当然也可以使用HorizontalScrollView来实现侧滑菜单。...办法肯定是有的,在《Android开发笔记(三十五)页面布局视图》中,我们提到marginpadding都可用来设置空隙,空隙的数值都是正数,其实空隙值也能是负数,负数表示该视图被隐藏了一部分,仿佛一张纸插了部分纸面到书中...3、通过手势滑动拉出菜单页后,要捕获点击事件完成翻页,即在onSingleTapUp方法中将当前页面切换到内容页。 下面是采用HorizontalListView实现侧滑的效果截图: ?...问题的症结在于菜单布局内容布局都在同一个页面中,所以极易造成滑动冲突,要想彻底解决滑动冲突,最好还是把两种布局分开到不同页面处理,技术上便是使用不同的Fragment分别放置菜单内容布局。...菜单点击时跳回内容页面 菜单点击的交互例子可见demo工程的ResponsiveUIActivity,主要做法步骤如下: 1、定义一个菜单点击接口OnSlidingMenuListener,其内部定义菜单点击方法

    1.2K70

    Android Tangram模型:连淘宝、天猫都在用的UI框架模型你一定要懂

    应用场景 常规业务 中 复杂的布局格式混排,:浮动布局、栏格布局、通栏布局、一拖N布局、瀑布流布局,还可以组合使用这些布局 具体场景是:电商平台首页、活动频道等等 Tangram 模型目前已在手机天猫...回收复用——Tangram在AndroidiOS平台上分别开发了VLayout LazyScroll两个基础组件,通过一个双索引可见区域组件发现算法,实现了跨父节点组件的高效回收复用。...动态化 提供 控制台 让业务方可直接控制基于Tangram的产品,调整页面布局,切换页面数据等。...组件 定义:最小单位的UI元素 日常使用的普通的View,如按钮、图片等等 作用:负责UI元素展示 & 业务逻辑 组成元素:视图模型(ViewModel) & 样式(Style) 视图模型:所有组件对有一个统一视图模型...(ViewModel),主要是定义了生命周期事件: 组件初始化时会调用init() 滑入屏幕绑定数据时,调用bind() 滑出屏幕解除绑定时,调用unbind() 关于 组件的基本样式 主要包括:组件背景

    2.4K10
    领券