LottieFiles:https://www.lottiefiles.com/。 LottieFiles是一个在线的测试Lottie动画的网站,并且其上面也提供了许多常用的Lottie动画组件。...二、一个简单的小Demo 先来看一个简单的小例子,我在LottieFiles上找了一个骑行动画的JSON文件,此文件的下载地址如下: https://www.lottiefiles.com/download...将下载的JSON文件添加到iOS项目中,之后就像使用图片一样的来使用它即可,代码如下: #import @interface ViewController () @...,是UIView或NSView的别名而已。 ...initWithContentsOfURL:(nonnull NSURL *)url; 其实无论上面哪种方式加载动画,都是通过LOTComposition组件类实例化的,你也可以直接通过这个类来构建动画视图
iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。...2.把view添加到uiwindow 创建一个控制器,把view添加到uiwindow上面(有两种方式) (1)直接将控制器的view添加到UIWindow中,并不理会它对应的控制器...这个只发生在接收者从它的父视图上移除或者接收者添加到父视图中而不是添加到window中。...消息或者子视图从接收者视图层次中移除因为它要被添加到其他视图了 3 UIView动画 3.1 概述 UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验...• 旋转:即任何应用到视图上的仿射变换(transform)。 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。
下面我们将引入UIView; 3. UIView view(视图)代表屏幕上的一个矩形区域。...创建view的步骤如下: ①开辟空间并初始化视图(初始化时,给出视图位置和大小) ②对视图做一些设置(比如:背景颜色) ③将视图添加到window上进行显示 ④释放视图对象 视图创建代码: UIView...当子视图添加到此视图时,会根据bounds指定的原点(0,0)计算frame,而非左上角。...UIView的操作方法 1)添加视图 UIView的addSubview:方法可以添加子视图,对于同一个视图的所有子视图来讲,后添加的子视图会把已加的子视图盖在下面。...③添加到父视图上,用以显示。 ④释放。
让我们先添加一个简单的UIView对象到屏幕上并设置它的圆角。我们要把它添加到我们的主窗口上时因为它是一个快速的例子,但在真实的app界面中你需要添加到管理当前界面的视图控制器中。...对象并设置了它的框架来定义它在屏幕上的的X和Y坐标,以及它的宽和高,然后将其添加到屏幕中。...让我们创建一个基于block的动画来将圆从1.0扩大到2.0倍,这会让它变成原来的两倍大。...首先,我们将视图的背景色从原始的红色改成了绿色。Core Animation会帮我们修改它并处理中间的颜色。接下来,我们改变了两个关于视图的transform的内容:它的尺寸和平移。...我们使用了CGAffineTransformConcat()函数来将两个更改操作合成了一个,这样就可以分配一个简单矩阵转化给视图。
UIView与UIViewController 初步印象 iOS 开发中,一个界面就是一个 UIViewController(视图控制器),界面上显示的内容就是 UIView(视图)。...UIView iOS坐标系 二维坐标系 ? 坐标系.png z轴 获取屏幕大小 UIScreen.main.bounds UIView添加到UIViewController的View ?...UIView添加到UIViewController的View.png UIView的容器概念 UIView 中可以放其他的 UIView。 UIView 的层次关系(平级与包含)。...UIView常见方法 addSubview:添加视图到父视图。 removeFromSuperview:将视图从父视图中移除(需提前讲解触摸方法)。...exchangeSubviewAtIndex:将2个位置的视图互换。 演示UIView与UIViewController Storyboard 注意左侧面板的视图层次结构。
由于视图由视图控制器管理,所以讨论视图的加载方式时,主要讨论视图控制器的加载方式。 通过Storyboard加载:这是苹果推荐的方式。...UIWindow并不包含任何默认的内容,但是它被当作UIView的容器,用于放置应用中所有的UIView。...2、UIWindow的主要作用有: 1.作为UIView的最顶层容器,包含应用显示所有的UIView; 2.传递触摸消息和键盘事件给UIView; 把view添加到uiwindow 3、把view...添加到uiwindow上面 (1)直接将控制器的view添加到UIWindow中,并不理会它对应的控制器 [self.window addsubview:vc.view]; (2)设置uiwindow...的根控制器,自动将rootviewcontroller的view添加到window中,负责管理rootviewcontroller的生命周期 [self.window.rootviewcontroller
应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类。...UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示。...CGRectMake(x, y, width, height); 配置背景颜色为greenColor,最后添加到我们的window上。 ? ...3.界面都是视图对象,即在UIView类的实例中进行布局,UIView表示屏幕上的一块矩形区域,负责渲染矩形区域中的内容,并且响应该区域内发生的触摸事件。...{ //实例化view并添加到mainView self.subView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100,
@property (nonatomic, strong) UIImageView *bigImageView;// 大图视图 @property (nonatomic, strong) UIView...*bgView;// 阴影视图 然后我们将小图片直接添加到界面上去: - (void)viewDidLoad { [super viewDidLoad]; // 小图 self.smallImageView...- (UIView *)bgView { if (nil == _bgView) { _bgView = [[UIView alloc] initWithFrame:CGRectMake...bringSubviewToFront:_bigImageView]; } 看代码,我们首先调用了大图的初始化方法,但是注意,此时还并没有将大图添加到界面上,如果这时候添加,就会直接显示大图了,在此之前...这里的动画我们使用的是最简单的iOS 7开始支持的基于block的UIView动画,在我的这篇博客中也有详细讲解:iOS基础动画教程 然后,我们初始化了阴影背景视图,并添加到界面上,此时不要忘记,要再次将大图手动推送到最上层
要实现这样的效果,基本思路是: 1,新建一个弹窗背景视图,背景颜色设置为黑色,透明度设置为0.5; 2,将自定义弹窗视图加在弹窗背景视图上; 3,触发弹出弹窗视图的时候,将弹窗背景视图添加到程序的根窗口上...; 4,移除弹窗视图的时候,就将弹窗背景视图从父视图上移除即可。...required */ @property (nonatomic, strong)UIView *customView; /** 决定hud视图是否展示的开关 required */ @property...展示浮层上的自定义提示视图的时候,我使用了UIView的动画,可以在这里实现浮层上的自定义提示视图展示时候的动画。 给浮层的背景视图添加一个点击手势,以在点击的时候移除该浮层。...设计师设计出一组动画效果,然后导成JSON文件,我使用Lottie解析该JSON文件就可以将动画效果展示出来,使用非常简单。
2UIView动画 2.1概述 UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。...UIView可以产生动画效果的变化包括: •位置变化:在屏幕上移动视图。 •大小变化:改变视图框架(frame)和边界。 •拉伸变化:改变视图内容的延展区域。...UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。...initWithTitle:@"next" style:UIBarButtonItemStylePlaintarget:self action:@selector(buttonPressed)]; //将按钮添加到导航控制器默认右按钮上...使用Core Animation时,应该将CATransition应用到视图的默认图层([myView layer])而不是视图本身。
我写了个UIView 的category,将这几种方式封装和简化了一下。 第一种情形截图 这种是最最普通的截图,针对一般的视图上添加视图的情况,基本都可以使用。...return snapshotImage; } 第三种情形截图 有一些特殊的Layer(比如:AVCaptureVideoPreviewLayer 和 AVSampleBufferDisplayLayer) 添加到某个...View 上后,使用上面的几种方式都无法截取到Layer上的内容,这个时候可以使用系统的一个API,但是该API只能返回一个UIView,返回的UIView 可以修改frame 等参数。.../** 截图 以UIView 的形式返回(_UIReplicantView) @return 截取出来的图片转换的视图 */ - (UIView *)snapshotView { UIView...,无法转换为UIImage,我试过将返回的截图View写入位图再转换成UIImage,但是返回的UIImage 要么为空,要么没有内容。
可以看到当 sourceView(加号按钮) 在不同地方的时候,popover 自动更改方向、调整箭头方向、位置以适应不同的 sourceView 类说明 open class KKPopover: UIView...此视图是底层视图,一般是添加到 window 上,与屏幕宽高一致 touchThrough: Bool /// 点击穿透 /// 设置为 true 点击空白地方,穿透点击 touchDismiss:...: UIView?..., sourceView: UIView) /// 根据 sourceView 展示在指定视图中 /// - Parameters: /// - view: 添加到的视图,不传则添加到 window...为 .any 并且设置 perferArrowDirection 时,查找 perferArrowDirection 内部合适的方向使用 open class KKPopoverArrowView: UIView
哪些属性可以添加动画效果 根据 iOS 视图编程指南中说明, UIView 内置支持为下列属性添加动画效果: Frame 可以改变视图相对于上一级视图的位置和大小。...实现动画的自动翻转 当创建自动翻转指定次数的动画时, 考虑将重复次数设置为非整数值。...(显示一个模式对话框、将视图控制器推入导航堆栈等), 视图切换改变的仅仅是视图的可视化树, 视图控制器是不变的, 更多信息可以参考iOS视图控制器编程指南。...修改子视图 可以修改子视图的可见性用来表示当前视图的不同的状态, 看下面的两个视图切换的例子,在 iOS 4.0 之前, 需要将视图切换动画添加到 Begin/Commit 动画之间, 代码如下: 在...替换子视图 要进行子视图的替换, 需要用到 transitionFromView:toView:duration:options:completion: 方法, 示例代码如下: UIView *fromView
框架布局将垂直方向上分为上、中、下三个方位,而水平方向上则分为左、中、右三个方位,任何一个子视图都只能定位在垂直方向和水平方向上的一个方位上。...表格布局是一种里面的子视图可以像表格一样多行多列排列的布局视图。子视图添加到表格布局视图前必须先要建立并添加行视图,然后再将子视图添加到行视图里面。...您需要提供一个实现曲线路径的函数、一个特定的坐标体系、一种特定的子视图在曲线上的距离设置这三个要素来实现界面布局。当曲线路径形成后,子视图将按相等的距离依次环绕着曲线进行布局。...您可以将Size Classes和上述的6种布局搭配使用,以便实现各种设备界面的完美适配。...将#import "MyLayout.h" 头文件放入到您的pch文件中,或者在需要使用界面布局的源代码位置。
而mas_remakeConstraints中所做的事情是将removeExisting属性设置成YES, 表示将当前视图上的旧约束进行移除,然后添加上新的约束。 ? ?...寻找两个视图的公共父视图对于约束的添加来说是非常重要的,因为相对的约束是添加到其公共父视图上的。...创建完约束对象后,我们要寻找该约束添加到那个View上。下方的代码段就是获取接收该约束对象的视图。如果是两个视图相对约束,就获取两种的公共父视图。...如果添加的是Width或者Height,那么久添加到当前视图上。如果既没有指定相对视图,也不是Size类型的约束,那么就将该约束对象添加到当前视图的父视图上。代码实现如下: ?...创建完约束对象,并且找到承载约束的视图后,接下来就是将该约束添加到该视图上。
我们实际是将这些动画添加到了控制器的视图图层上。...为切换视图添加动画 有时我们在切换两个视图的时候也需要添加动画,实际动画还是添加在了图层上了。切换的两个视图是添加在同一个视图控制器的view上的。...]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:kDuration...]; switch (tag) { case 105: [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown...:)]; [UIView commitAnimations]; 下面的代码动画效果会更丰富一些: CATransition *animation = [CATransition animation
2、UIView的作用:描画和动画,视图负责对其所属的矩形区域描画、布局和子视图管理、事件处理、可以接收触摸事件、事件信息的载体等等。...下面介绍的是view添加以及删除时所触发的方法 // 当视图添加子视图时调用 - (void)didAddSubview:(UIView *)subview; // 当子视图从本视图移除时调用...- (void)willRemoveSubview:(UIView *)subview; // 当视图即将加入父视图时 / 当视图即将从父视图移除时调用 - (void)willMoveToSuperview...:(nullable UIView *)newSuperview; // 当试图加入父视图时 / 当视图从父视图移除时调用 - (void)didMoveToSuperview; // 当视图即将加入父视图时...创建实例,添加到控制器的view,设背景色为紫色,并将001赋给tag值 override func viewDidLoad() { super.viewDidLoad() let
toVC.view.frame = CGRectOffset(finalRect, [[UIScreen mainScreen]bounds].size.width, 0); //添加到内容视图.../ - (nullable __kindof UIView *)viewForKey:(UITransitionContextViewKey)key; //获取视图控制器的初识位置 - (CGRect)...我们在使用系统的导航控制器时,右划返回效果对用户体验十分友好,我们下面就来试着将视图控制器的模态跳转设计成类似导航可交互的。 ...UITransitionContextFromViewControllerKey]; //最终的位置 toVC.view.frame = [transitionContext finalFrameForViewController:toVC]; //添加到内容视图...UITransitionContextFromViewControllerKey]; //最终的位置 toVC.view.frame = [transitionContext finalFrameForViewController:toVC]; //添加到内容视图
这个类跟踪你添加到引擎的各种行为,比如引力,并提供整体上下文。当创建animator的实例时,将传入animator用于定义其坐标系的参考视图。...; 因此将障碍添加到物品列表中允许碰撞物体也作用于障碍物。...UIView UIView.animate(withDuration: 1) { collidingView.backgroundColor = .gray } 上面的代码将碰撞项目的背景颜色淡化为灰色...在viewDidLoad上添加两个属性: var square: UIView! var snap: UISnapBehavior! 这将跟踪方块视图,以便您可以从视图控制器的其他位置访问它。...然后创建一个新的捕捉行为,将方块对齐到用户的触摸位置,并将其添加到动画制作工具中。 构建并运行应用程序。
一、苹果的VFL语法约束 在使用约束之前,要先将没有设置frame的view添加到父视图上。如何将view设置为使用AutoLayout约束,取消默认约束。...UIView *red = [[UIView alloc]init]; red.backgroundColor = [UIColor magentaColor]; [self.view...red.translatesAutoresizingMaskIntoConstraints = NO; // 取消默认的 语法说明: format:VFL语句,字符串 H:垂直位置 -:某两个视图之间的距离...|:表示父视图 [view]:表示对哪个视图进行约束 (==):表示约束的值 下面是VFL约束的Demo [self.view addConstraints:[NSLayoutConstraint...200); }]; [cyan setNeedsLayout]; // 通知约束更新 [cyan layoutIfNeeded]; }]; // 将现有的约束全部移除
领取专属 10元无门槛券
手把手带您无忧上云