echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能的解决办法。...最明显的方法,你已经提到过,是使用 source 或 ....在调用 shell 的上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量的命令.../set-vars2.sh)" $ echo "$FOO" BAR 在终端上执行 help export 可以查看 Bash 内置命令 export 的帮助文档: # help export export...help eval 相关阅读: 用和不用export定义变量的区别 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----
gestureRecognizers属性包含附加到view的手势识别器。 其他属性控制view支持的触摸事件。...此方法将subview添加到父级View的subviews列表的末尾。...当subview添加到其父项时,subview的当前frame矩形表示它在superview内的初始位置。frame位于其superview的可见边界之外的subview在默认情况下不会被剪切。...除了直接处理触摸事件之外,view还可以使用手势识别器来检测轻敲,滑动,捏,以及其他类型的常见触摸相关的手势。手势识别器在追踪触摸事件方面付出了艰辛的努力,并确保他们按照正确的标准将其定位为目标手势。...手势识别器然后在相应手势发生时调用您的操作方法。
(2)设置手势识别属性,例如手指数量,方向等 (3)将手势识别附加到指定的视图之上 (4)编写手势触发监听方法 ---- 二、UIView 的分类 方法: 1、添加一个手势 - (void)addGestureRecognizer...(nullable, nonatomic,readonly) UIView *view; 4、是否取消触摸控件的响应 默认为YES,这种情况下当手势识别器识别到触摸之后,会发送touchesCancelled...默认是NO,这种情况下当发生一个触摸时,手势识别器先捕捉到到触摸,然后发给触摸到的控件,两者各自做出响应。...如果设置为YES,手势识别器在识别的过程中(注意是识别过程),不会将触摸发给触摸到的控件,即控件不会有任何触摸事件。...只有在识别失败之后才会将触摸事件发给触摸到的控件,这种情况下控件view的响应会延迟约0.15ms。
通过这种方式,可以选择哪些项目受到行为的影响,在这种情况下哪些项目会受到重力的影响。 大多数行为都有一些配置属性;例如,重力行为可以改变它的角度和大小。...这个协议意味着动态与UIView不紧密耦合; 的确有另一个UIKit类不是视图,但仍然采用这个协议:UICollectionViewLayoutAttributes。..., UICollisionBehaviorDelegate { 在viewDidLoad中,在初始化碰撞对象之后将视图控制器设置为委托,如下所示: collision.collisionDelegate...UIView UIView.animate(withDuration: 1) { collidingView.backgroundColor = .gray } 上面的代码将碰撞项目的背景颜色淡化为灰色...itemBehaviour.elasticity = 0.6 animtor.addBehavior(itemBehaviour) 上面的代码创建一个项目行为,将其与方块关联,然后将行为对象添加到动画设计器中
iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。...2.把view添加到uiwindow 创建一个控制器,把view添加到uiwindow上面(有两种方式) (1)直接将控制器的view添加到UIWindow中,并不理会它对应的控制器... [self.window addsubview: vc.view]; (2)设置uiwindow的根控制器,自动将rootviewcontroller的view添加到window中,负责管理...提示:不通过控制器的view也可以做开发,但是在实际开发中,不要这么做,不要直接把view添加到UIWindow上面去。因为,难以管理。 ...如果一个子视图的区域超过父视图的bound区域(父视图的clipsToBounds属性为NO,这样超过父视图bound区域的子视图内容也会显示),那么正常情况下对子视图在父视图之外区域的触摸操作不会被识别
方法监听view触摸事件,有很明显的几个缺点 必须得自定义view 由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件 不容易区分用户的具体手势行为...- iOS 3.2之后,苹果推出了手势识别功能(Gesture Recognizer),在触摸事件处理方面,大大简化了开发者的开发难度 3.1手势识别器(UIGestureRecognizer) 为了完成手势识别...,必须借助于手势识别器——UIGestureRecognizer 利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势 UIGestureRecognizer是一个抽象类...1.创建手势识别实例 2.设置手势识别属性,例如手指数量,方向等 3.将手势识别附加到指定的视图之上 4.编写手势触发监听方法 每一个手势识别器的用法都差不多,比如UITapGestureRecognizer...- (void)tap { NSLog(@"点我了"); } 4.7 手势的总结 一定记住设置完transform之后,需要将对应的形变参数复位 手势识别,是单独添加到某一个视图上的 如果要同时支持多个手势识别
如果能,那么 UIWindow 会从后往前遍历自己的子 UIView,将事件向下传递。...事件响应 当找到最合适的响应者之后,响应者对于触摸事件,有以下 3 种操作: (1)不拦截,事件会沿着默认的响应链自动传递。...响应者对于触摸事件的响应和传递都是在touchesBegan方法中完成的。该方法默认是将事件顺着响应者链向上传递,即将事件交给上一个响应者进行处理。...将手势添加到需要的 UIView 上。每个手势只对应一个 UIView,当屏幕触摸在当前 UIView 里时,如果手势和预定的一样,回调方法就会调用。...print(#function) } } extension ViewController: UIGestureRecognizerDelegate { // 手势识别器是否解释此次手势
购买服务器与域名 服务器上安装所需环境(本项目是 node 和 mongodb ) 服务器上开放端口与设置规则 用 nginx、apache 或者tomcat 来提供HTTP服务或者设置代理 上传项目代码...2.2 购买服务器与域名 本人一直觉得程序员应该有一个自己的个人网站,拥有自己的域名与服务器。学知识或者测试项目的时候可以用来测试。...服务器上安装所需环境(本项目是 node 和 mongodb ) 3.1 登录服务器 因本人用的是 MacBook Pro ,所以直接打开 mac 终端,通过下面的命令行连接到服务器。...3.5 上传项目代码,或者用码云、 gihub 来拉取你的代码到服务器上 我是创建了码云的账号来管理项目代码的,因为码云上可以创建免费的私有仓库,我在本地把码上传到 Gitee.com 上,再进入服务器用...做完一系列的优化处理之后,在网络正常的情况下,页面首屏渲染由本来是接近 5 秒,变成了 3 秒内,首屏渲染之前的 loading 在 1 秒内可见了。
跨平台框架都会面对和原生平台沟通的问题,Flutter 也不例外,在实际工程落地的过程中经常会碰到手势识别交互的问题。...问题 西瓜视频在实际使用过程中发现了一个问题,场景是这样:西瓜 iOS 客户端所有页面都有全屏右划退出功能,这个功能的实现是将一个 PanGestureRecognizer 添加到 NavigationController...我们期望的交互效果是:当用户在划动横向列表时,全屏手势后退效果应该是不生效的才对。...如果你的项目一定要依赖 Listener,希望你谨慎考虑本文的方案,如果有其他兼容 Listener 的思路也欢迎大家一起讨论。...总结 跨平台框架都会面对和原生平台沟通的问题,这是跨平台的本质决定的,Flutter 也不例外,我们在实际工程落地的过程中踩的坑多数都是这类问题,本质上手势冲突的问题也属于这一类,后续碰到类似问题,大家可以尝试使用代理机制来处理
这样,您可以选择哪些项目受到行为的影响,在这种情况下,引力影响哪些项目。 大多数行为具有许多配置属性; 例如,重力行为允许您改变其角度和幅度。...碰撞对象需要知道它应该与之相互作用的每个视图; 因此,将项目列表中的障碍添加到允许碰撞对象也可以作用在障碍物上。...这个协议意味着动态不紧密耦合UIView; 确实有另一个UIKit类不是视图,但仍然采用这个协议:UICollectionViewLayoutAttributes。...九、配置item属性 上述代码创建一个item行为,将其与square相关联,然后将该行为对象添加到动画制作器。...在上面的代码中,只改变了项目的弹性; 但是,该项目的行为类具有可以在代码中操作的其他许多属性。它们如下: 弹性(elasticity) - 决定弹性的碰撞将如何,即项目在碰撞中的弹性或“橡皮”。
还可以在普通电脑上装一个黑苹果系统(不推荐),安装复杂且不稳定。 开发软件 iOS 使用 Xcode 工具进行开发。...Cocoa Touch 层为应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,它负责用户在 iOS 设备上的触摸交互操作以及一些其他的关键功能。 创建第一个iOS项目 ?...UIView iOS坐标系 二维坐标系 ? 坐标系.png z轴 获取屏幕大小 UIScreen.main.bounds UIView添加到UIViewController的View ?...UIView添加到UIViewController的View.png UIView的容器概念 UIView 中可以放其他的 UIView。 UIView 的层次关系(平级与包含)。...insertSubview:在指定视图的上/下面插入视图。 bringSubviewToFront:把视图移到最顶层。 exchangeSubviewAtIndex:将2个位置的视图互换。
BiaoChenXuYing 前言 本文讲解的是:做为前端开发人员,对服务器的了解还是小白的我,是如何一步步将 node+mongodb 项目部署在阿里云 centos 7.3 的服务器上,并进行性能优化...把 Node.js 项目部署到阿里云服务器(CentOs) 一般在新服务器创建后,建议先升级一下 CentOS: yum -y update 常用的 Linux 命令 cd 进入目录 cd .....将nodejs项目部署到阿里云ESC服务器,linux系统配置80端口,实现公网IP访问 2. centos出现“FirewallD is not running”怎么办 3.4 用 nginx、apache...做完一系列的优化处理之后,在网络正常的情况下,页面首屏渲染由本来是接近 5 秒,变成了 3 秒内,首屏渲染之前的 loading 在 1 秒内可见了。 4....基于 node + express + mongodb 的 blog-node 项目文档说明 4. 服务器小白的我,是如何将node+mongodb项目部署在服务器上并进行性能优化的
根 View 组件 , 然后将 生成的 UIView 控件添加到 该 根 View 控件中 ; //4....将 UIButton 添加到 根 View 中 [self.view addSubview:button]; } //为 生成的 按钮 绑定 点击事件 - (void) bindMethod{...300 , 居中显示 , 之后将生成的 UIView 控件放在该 容器 中 ; 3.添加按钮 : 添加两个按钮 , 两个按钮的功能分别是 生成 UIView 控件 和 清空 UIView 控件...= CGRectMake(arc4random_uniform(200), arc4random_uniform(280), 150, 20); 4.添加到父容器 : 将代码添加到 父容器 中 ;...; ② 在 属性查看器中设置 Size 属性为 iPhone 4.7-inch ; ③ 在 文件查看器 中取消 Use Auto Layout 选项 ; ---- 2.
在实际开发中,为了保证所开发的产品能够尽量完美上线,在上线前会特意测试几轮,保证所开发的应用没有问题。...据此,在实际的开发过程中,往往需要区分测试环境和线上环境,在Android开发中,可以通过gradle脚本来识别,并在代码中体现出来。...含义也很简单,它是一个项目环境的设置文件,一个Target定义了一个单一项目环境,在一个项目工程中可以包含一个或者多个Target。也就是说一个项目中可以设置多种环境。...使用 创建Target的方式有两种: 直接copy之前项目中的Target配置; 创建新的Target配置; 步骤一:创建Target 在工程中对已存在的target进行复制,点击Duplicate即可...Pod管理 相信很多时候,ios的项目离不开pods的框架管理,在使用cocopods管理的时候,我们不要忘了将这些框架添加到对应的Target中,否则,可能使用的时候找不到对应的框架,对于pod的使用
注意:视频可能无法在模拟器中播放。 在真实设备上运行该应用程序将缓解该问题。 入门项目是一个 vlogger 应用程序,您将使用 AVKit 和 AVFoundation 添加功能和特性。...现在,是时候将您的视频剪辑列表添加到播放器中,以便它可以开始播放它们。...3) 最后,您使用 insert(_:after:) 将每个项目添加到队列中。...不幸的是,这对您没有帮助! 您想要的是循环播放所有这些视频。 看起来您必须以手动方式做事。 您需要做的就是跟踪您的播放器和当前播放的项目。 当它到达最后一个视频时,您将再次将所有剪辑添加到队列中。...如果你完全不熟悉 KVO,这里有一个简单的解释:基本思想是你在特定属性的值发生变化时注册通知。 在这种情况下,您想知道播放器的 currentItem 何时发生变化。
iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。...补充:UIWindow是创建的第一个视图控件(创建的第一个对象是UIapplication)如下图: 添加 先创建UIwindow,再创建控制器,创建控制器的view,然后将控制器的view添加到UIWindow...2.把view添加到uiwindow 创建一个控制器,把view添加到uiwindow上面(有两种方式) (1)直接将控制器的view添加到UIWindow中,并不理会它对应的控制器 [self.window... addsubview:vc.view]; (2)设置uiwindow的根控制器,自动将rootviewcontroller的view添加到window中,负责管理rootviewcontroller...提示:不通过控制器的view也可以做开发,但是在实际开发中,不要这么做,不要直接把view添加到UIWindow上面去。因为,难以管理。
现在给view添加一个手势识别器:在DynamicsTossingVC.swift添加如下代码: @IBAction func handleAttachmentGesture(_ sender: UIPanGestureRecognizer...现在运行项目,在屏幕上滑动或者拖动,控制台的输出信息应该如下类似: Touch start position is (234.666656494141, 463.666656494141) Start...我们用VC的view作为参考视图,该视图定义了动画制作者的坐标系统。 可以将动画添加到动画制作工具中,这样可以执行诸如附加视图,推动视图,使其受重力影响等等。...当用户的手指移动时,手势识别器调用此方法更新锚点以跟随触摸。 另外,animator 会自动更新视图以跟随定位点。 运行demo,拖动视图会出现如下效果: ?...为了解决这个问题,将这个新方法添加到类中: fileprivate func resetDemo() { animator.removeAllBehaviors() UIView.animate
iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 主要作用是提供一个区域用来显示...UIView;将事件分发给UIView;与UIViewController一起处理屏幕的旋转事件。...在创建UIView时,它内部会自动创建一个图层,当UIView需要显示在屏幕上的时候,会调用drawRect:方法进行绘图,并且会将所有内容绘制到自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,这样完成...UIView的显示。...layer给view提供了基础设施,使得绘制内容和呈现更高效动画更容易、更低耗 layer不参与view的事件处理、不参与响应链 *** 更多:iOS面试题合集
: 方法) 注意: 如果当动画正在执行的时候, 将程序退出到后台, 那么当程序再次进入前台的时候就不执行了。...或不设置效果为 ?...属性: animations:动画组,用来保存一组动画对象的NSArray 默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间 例子: /...UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果 属性: type:设置动画过渡的类型 枚举: kCATransitionFade...self.index + 1]; // 切换图片 self.imgViewIcon.image = [UIImage imageNamed:imgName]; // 把转场动画添加到对应的控件上
领取专属 10元无门槛券
手把手带您无忧上云