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

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

frame、bounds、center属性仅仅是存取方法,当操纵视图的frame时,实际上是在改变视图对应的CALayer的frame, 不能独立于图层之外改变视图的frame....除了指针图片的位置,其他的都正常。 可能这时候我们最先想到的方法,是调整对应图片的位置来解决。但是这样的话,你可以试试,并不能解决问题。不用卖关子了。这时候就是要用到anchorPoint的时候。...zPosition属性大多数不常用,除了三维动画之外,它最实用的功能是可以改变图层的显示顺序。 3.2 zPosition演示代码 我们演示下改变zPosition会怎么改变视图的显示顺序。...首先我在SB中设置两个视图,如下图: ? 如果我们不做任何操作,运行后,两个视图显示的顺序就是我们现在设置的这样。...但是假如我们对yellowView设置zPosition,哪怕很小的值,都会发现显示的顺序反了。

57730
您找到你想要的搜索结果了吗?
是的
没有找到

iOS14开发-入门知识

Storyboard 中的界面ViewController.swift之间的联系(一个界面一个类文件关联)。...UIViewUIViewController 初步印象 iOS 开发中,一个界面就是一个 UIViewController(视图控制器),界面上显示的内容就是 UIView视图)。...UIView添加到UIViewController的View.png UIView的容器概念 UIView 中可以放其他UIViewUIView 的层次关系(平级包含)。...exchangeSubviewAtIndex:将2个位置的视图互换。 演示UIViewUIViewController Storyboard 注意左侧面板的视图层次结构。...目前有两种方式: 通过 tag 属性:一旦视图多了,或者忘了设置 tag,亦或者设置了相同的 tag,都会出现问题。 通过 subviews 属性:一旦视图多了很难通过数组准确获取某个 View。

2.8K40

《Motion Design for iOS》(十七)

让我们先添加一个简单的UIView对象到屏幕上并设置它的圆角。我们要把它添加到我们的主窗口上时因为它是一个快速的例子,但在真实的app界面中你需要添加到管理当前界面的视图控制器中。...这里是和上面一样的功能,但是是Swift而不是Objective-C写的。你可以打开Balls In Swift Xcode工程导出这个例子的Swift版本。...其他的时间曲线选项还有线性、淡入和淡出。 接下来,动画(animations)安排使用了一个block代码作为值,在block中你可以设置你要动画的视图的最终状态。...将transform属性设为`CGAffineTransformMakeScale(2.0, 2.0)意味着我们想要其他所有的值都保持不变,除了尺寸,我们想让尺寸变为原来的两倍。...这里是Swift下同样的代码: UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut

93720

iOS下的界面布局利器-MyLayout布局框架

Swift:TangramKit: https://github.com/youngsoft/TangramKit OC:MyLayout: https://github.com/youngsoft...MyLayout还提供了Swift版本TangramKit MyLayout的优势 MyLayout的实现内核是基于frame的设置,而不是对AutoLayout的封装。...而MyLayout则除了提供约束依赖外,还提供了根据视图添加顺序自动建立约束的功能,从而减少了这种显示依赖关系建立的问题,最终的结果是简化了布局的代码量,以及减少了布局更新时的代码修改量。...框架布局是一种里面的子视图停靠在父视图特定方位并且可以重叠的布局视图。框架布局里面的子视图的布局位置和添加的顺序无关,只跟父视图建立布局约束依赖关系。...'~> 1.3.5' 然后运行如下命令: $ pod install 演示效果图 MyLayout演示效果图 链接: 欢迎大家访问我的github站点,并关注@欧阳大哥2013 关注我的个人主页 Swift

1.8K30

声明式 UIKit 在有赞美业的实践

同时布局是通过每一行代码的描述来约定与其他视图之间的布局关系,在修改 UI 之前,出了需要看明白视图创建流程,还要熟读每一行的约束,了解清楚它们之间的关系才能修改。...代码结构即 UI 结构 UI 节点相互独立,可移植性高 布局规则 UI 视图分离,高度灵活可定制 二、实现 想要实现 UIKit 使用声明式的布局方式,首先要解决布局问题。...我们知道,布局进行抽象后,其实就是对节点的位置和大小的计算,视图没有任何的关系,基于这个问题,其实算法是可以抽离的,使用 C++ 不仅性能高,还可以跨平台。...然而有赞美业是有赞最早迁移到 Swift 的项目,迁移 Swift 后的代码,对 C++ 的兼容其实有一定的局限性,若过多使用 C++,在代码中也不能体现 Swift 的优雅性。...基于上述问题,我们决定自己封装基于 Swift 的声明式 UI 开发框架。

1.4K30

AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

下载好材料打开 TravelVlogs.xcodeproj 并转到 VideoFeedView.swift。 注意:视频可能无法在模拟器中播放。 在真实设备上运行该应用程序将缓解该问题。...转到 LoopingPlayerView.swift,您将在其中找到一个用于显示视频的空视图。 它需要一组视频 URL 才能播放。...这表明添加自定义控件以自定义视频视图交互是多么容易。 现在,您只需轻按一下即可提高音量并进入快播状态。 5....要解决此问题,请转到 VideoFeedView.swift 并在 makeFullScreenVideoPlayer(for:) 中找到 VideoPlayer 的 onAppear块。...您还指定您的应用程序使用音频进行“电影播放”,并且您可以将声音来自其他来源的声音混合。 构建并运行,开始备份音乐并再次启动应用程序。 您现在拥有一个视频应用程序,让您可以自由地成为自己船的船长。

6.9K10

UIView不可不知的秘密

2、UIView的作用:描画和动画,视图负责对其所属的矩形区域描画、布局和子视图管理、事件处理、可以接收触摸事件、事件信息的载体等等。...下面介绍的是view添加以及删除时所触发的方法 // 当视图添加子视图时调用 - (void)didAddSubview:(UIView *)subview; // 当子视图从本视图移除时调用...:(nullable UIView *)newSuperview; // 当试图加入父视图时 / 当视图从父视图移除时调用 - (void)didMoveToSuperview; // 当视图即将加入父视图时...我们用swift版的代码来验证下。...之后在viewDidLoad添加一个带有延迟的添加红色view代码,值得一提的是,这是最新swift3.1的GCD延时方法 //如果不需要在主线程执行,就去掉main DispatchQueue.main.asyncAfter

1.6K90

【IOS开发进阶系列】动画专题

,于是它就在所有其他图层的前面了(或者至少是小于它的zPosition值的图层的前面)。        ...图3.8 在视图层级中绿色视图被绘制在红色视图的后面         我们希望在真实的应用中也能显示出绘图的顺序,同样地,如果我们提高绿色视图zPosition(清单3.3),我们会发现顺序就反了...如果我们把之前项目的右边用单独的视图把裁剪的视图包起来,我们就可以解决这个问题(如图4.9)。...问题在于视图顺序。在第三章中我们简要提到过,点击事件的处理由视图在父视图中的顺序决定的,并不是3D空间中的Z轴顺序。...这里有几种正确的方案:把除了表面3的其他视图userInteractionEnabled属性都设置成NO来禁止事件传递。或者简单通过代码把视图3覆盖在视图6上。

39410

UIKit Dynamics:开始入门 —《Graphics & Animation系列一》

准备开始 在ViewController.swift 添加如下代码在viewDidLoad: let square = UIView(frame: CGRect(x: 100, y: 100,...这不是我们想要的效果,但它确实提供了一个重要的提示:动态只会影响行为相关的视图: ? UIDynamicAnimator提供坐标系的参考视图相关联。...现在需要一个不同的方法来解决问题。 由于障碍视图是不可移动的,所以动力学引擎不需要知道它的存在。 但是如何检测到碰撞?...这个协议意味着动态UIView不紧密耦合; 的确有另一个UIKit类不是视图,但仍然采用这个协议:UICollectionViewLayoutAttributes。...在viewDidLoad上添加两个属性: var square: UIView! var snap: UISnapBehavior! 这将跟踪方块视图,以便您可以从视图控制器的其他位置访问它。

1.8K30

动画分析步骤“三步曲”

要想弄清楚这个问题先搞清楚ViewController.swift 中几个方法的执行顺序。需要关注以下3个方法。...: TimeInterval, animations: @escaping () -> Swift.Void) 该方法属于类方法,类名可以直接调用,表明为当前的UIView添加一个动画效果,它的每个参数的含义如下...4 UIView视图中常见动画的属性分析 我们在第2节和第3节主要依靠UIView下的frame属性来实现登录按钮从左到右的进入效果。那么UIView下的其他属性是不是也可以有类似的效果呢?...要想回答这个问题,首先需要弄清楚UIView都有哪些常见的属性。...每个UIView都有一个Layer图层,在这个图层中承载的是视图的内容,所以结合Layer可以实现很多高级的动画效果。当然除了这些之外,UIView还有很多其他属性,在后面的章节中会为大家一一呈现。

86010

Ios常用第三方动画框架(三)

其他动画 popping - popping是一个POP 使用实例工程 PopMenu - 用POP动画引擎写的Sina微博的Menu菜单。...JGTransitionCollectionView - swift,基于集合视图扩展实现完成自动布局及单元项 Flip式动画效果(效果很赞)。...iCarousel - iCarousel是一个类,它继承于UIView。用于简化实现各种类型的旋转木马(分页滚动视图),无限轮播 ,iOS开发之多图片无缝滚动组件封装使用。...CardsAnimationDemo - swift,《使用 UICollectionView 实现的一个卡片动画》不是直接操作所有 UIView 和 CALayer 的 transform3D 属性来实现整个效果的...NumberMorphView.swift - 可爱的数字补间(变身)动画类库。 DisplaySwitcher.swift - 两个集合视图在不同布局(平铺和列表)间平滑切换。

9K30

iOS9新特性——堆叠视图UIStackView

,UIStackView正好可以解决这样的问题。...二、在storyBoard上初识StackView         UIStackView是一个管理一组堆叠视图的控制器类视图,所谓堆叠视图时一种平铺式的线性布局方式,不可重叠,布局方向也不可交错,如果你做过...我们的布局没有问题,并且可以动态的改变其中view的个数,使用如下方法添加一个view:     UIView * newView = [[UIView alloc]init];     newView.backgroundColor...有关被管理视图的添加移除: //初始化方法,通过数组传入被管理的视图 - (instancetype)initWithArrangedSubviews:(NSArray<__kindof UIView...; //添加一个视图进行管理 - (void)addArrangedSubview:(UIView *)view; //移除一个被管理的视图 - (void)removeArrangedSubview:

1.8K10
领券