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

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

视图的frame、bounds、center属性仅仅是存取方法,当操纵视图的frame时,实际上是在改变视图对应的CALayer的frame, 不能独立于图层之外改变视图的frame....frame的值实际指的是图层旋转之后整个轴对齐的矩形区域。此时frame的宽高可能和bounds的宽高不一致: ? ---- 2.锚点 默认来说,anchorPoint位于图层的中点。...创建4个UIImageView并设置好约束(都是居中显示)。 ? 我们用NSTimer来更新闹钟,使用视图的transform属性来旋转钟表。...位于父图层的左上角,但在 Mac OS 中,通常位于左下角。...首先我在SB中设置两个视图,如下图: ? 如果我们不做任何操作,运行后,两个视图显示的顺序就是我们现在设置的这样。

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

    iOS-UIScrollerView

    UIScrollerView常见属性 CGPoint contentOffset 这个属性用来表示UIScrollerView滚动的位置(其实就是内容左上角与ScrollerView左上角的间距值...contentSize 这个属性用来表示UIScrollerView内容尺寸,滚动范围(能滚多远) UIEdgeInsets contentInset 这个属性能够在UIScrollerView的四周增加额外的滚动区域...*)scrollView{ return [UIView new]; } ScrollerView缩放的代理回调 //滚动视图在和方法的实现结束时调用此方法,但仅在请求动画时调用setContentOffset...:(UIScrollView *)scrollView{ NSLog(@"滚动视图在完成滚动到内容顶部时发送此消息"); } UIScrollerView分页(电商与新闻常用) 简单示例.gif...{ [super viewDidLoad]; UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 64, self.view.bounds.size.width

    18010

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

    基本视图 在Main.Storyboard中,我们已经提到ARSCNView默认放在视图控制器的顶部。但是,如果没有UIView作为基础,则仅限于您可以在用户界面上执行的操作。...调整大小以填充整个视图控制器。 约束 然后,单击Storyboard编辑器左下角的第四个图标,将新约束添加到场景视图中。定义约束以确保您的用户界面适应不同的屏幕尺寸或设备方向。...设置为0的顶部,左,右和底部。确保它们都被约束到视图而不是安全区域,然后单击Add Constraints。安全区域是凹口下方和主页指示器上方的边距,通常是屏幕的可见部分。...此外,请确保未选中“ 限制到边距”。 如果被限制在安全区域而不是超级视图,这就是看起来的样子,显然,这看起来并不好看。 ?...从对象库中,将UIButton拖动到场景视图的顶部。在“ 属性”检查器中,删除“ 按钮”标题并将图像设置为“ 按钮/添加”。 约束到底部20但这次是在安全区域,并取消选中Constrain到边距。

    5.5K20

    动画分析步骤“三步曲”

    在一般中小规模的公司中,开发人员往往都是身兼数职。不仅要编写代码还要参与到算法的设计中去,甚至参与到动画原型的设计中去。所以弄清楚动画设计过程中的不同角色,以及搞清楚动画的分析过程是非常有必要的。...在iOS视图中,左上角为视图的原点(0,0),水平向右为x轴递增方向,竖直向下为y轴递增方向,只有当View视图位于手机屏幕展示坐标系之内,大家才能看到(虚线区域内控件不可见),否则登录按钮是不可见的。...表1 6S下QQ图标移动效果:QQ图标x、y坐标随时间变化关系表 3.动画结束阶段 在动画效果结束之后没有触发新的回调事件,只是更新了当前登录按钮的最后位置,所以图片最终停留在视图层的中间位置。...,frame的x坐标和y坐标相对于父控件的原点来计算,而bounds一般只能对width、height进行操作,它的x、y坐标只相对于自身而言,center描述的是x、y信息,即UIView的中心位置。...通过以上分析可以知道,可以通过x、y坐标修改UIView的移动位置,还可以通过修改width或者height来修改UIView的拉伸、收缩效果。

    90710

    iOS开发之扫描二维码

    4、创建预览层 5、设置扫描区域 实现 从上面的描述看,除了预览层,其他的和UI界面似乎没什么关系,但是实际开发中,扫描界面一般都是设计的比较人性化的,如支付宝、微信等,中间都有一个小框,有个线上下扫...(宽度一致) */ @property (weak, nonatomic) IBOutlet NSLayoutConstraint *scanViewH; /** * 扫描线的顶部约束值 */...UIView动画中修改约束是没效果的,需要在设置完约束以后,加上[self.view layoutIfNeeded];。...2、设置扫描区域,也就是设置AVCaptureMetadataOutput的rectOfInterest属性,它是一个CGRect类型,但是它的四个值和传统的不一样,是(y,x,高,宽)且是比例值,取值范围为...那么有两种方案,第一种需要自己计算具体位置的比例,如代码中注释的那些。

    1.9K40

    iOS学习——UIView的研究

    在iOS开发中,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要。...2个 属性 8个 UIView的各类扩展 视图几何相关的扩展 UIView (UIViewGeometry),主要定义了视图上位置和区域相关一些属性和方法 视图层次结构相关的扩展 UIView (UIViewHierarchy...,比喻第一视图、基线视图、视图大小等等 视图约束适应尺寸相关的扩展 UIView (UIConstraintBasedLayoutFittingSize),主要用于获取持有约束的视图大小及其区域内的视图大小...; 245 /** 插入子视图(将子视图插入到subviews数组中index这个位置) */ 246 - (void)insertSubview:(UIView *)view atIndex:(NSInteger...这样我们就可以很清楚的看到哪一个layout导致了整体的布局约束出现了错误,或者我们应该增加更多的布局约束 */ 620 - (void)exerciseAmbiguityInLayout NS_AVAILABLE_IOS

    2.8K80

    UIKit Dynamics:抛出视图 —《Graphics & Animation系列三》

    打开DynamicsTossingVC.swift并将以下代码放在viewDidLoad()中super.viewDidLoad()下方。...稍后,更改定位点使图像视图移动。 // 将锚点附加到视图就像安装一个将锚点连接到视图上的固定附件位置的不可见杆。...注意视图不仅仅是在屏幕上进行旋转; 如果您在图像的某个角落开始手势,则由于锚点的缘故,视图会随着手指移动而旋转。 但是,当完成拖动时,将视图恢复到原始位置会更好。...现在拖动图像后,它应该恢复到原始位置。 UIPushBehavior 接下来,我们需要在停止拖动时分离视图,并为其提供动力,以便在运动中释放视图时可以继续其轨迹。...表示视图必须移动的速度有多快才能使视图继续移动(而不是立即返回到原始位置)。

    1.1K20

    iOS 面试策略之系统框架-UIKit

    对于 iOS 11 中最新的 drag and drop 和安全区域亦有涉及。 UI 控件和基本布局 1.要在 UIView 上定义一个 Label有 哪几种方式?...5.请说明并比较以下关键词:Frame, Bounds, Center 关键词: #坐标 #父视图 Frame 是指当前视图(View)相对于父视图的平面坐标系统中的位置和大小。...Bounds 是指当前视图相对于自己的平面坐标系统中的位置和大小。 Center 是一个 CGPoint,指当前视图在父视图的平面坐标系统中最中间位置点 。...7.请说明并比较以下关键词:Safe Area, SafeAreaLayoutGuide, SafeAreaInsets 关键词: #安全区域 由于 iPhone X 全新的刘海设计,iOS 11 中引入了安全区域...很多时候 UI 控件可能在 iPhone 上大小刚好,但在 iPad 上可能偏小,位置也有可能有偏移。

    1.5K20

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

    我们的工程中需要一些额外的视图。(为了避免太多代码。我们将使用Interface Builder来拜访他们的位置,如果你愿意还是可以用代码的方式来实现的)。...图5.8 绕y轴旋转45度的视图 清单5.4 绕Y轴旋转图层 @implementation ViewController - (void)viewDidLoad {     [super viewDidLoad...但是并不像以前那样直接将立方面添加到容器视图的宿主图层,我们将他们放置到一个CATransformLayer中创建一个独立的立方体对象,然后将两个这样的立方体放进容器中。...,他们会淡入到界面中。...CATiledLayer(不同于大部分的UIKit和Core Animation方法)支持多线程绘制,-drawLayer:inContext:方法可以在多个线程中同时地并发调用,所以请小心谨慎地确保你在这个方法中实现的绘制代码是线程安全的

    56910

    UIView不可不知的秘密

    前言: 1、在Mac OS中NSWindow的父类是NSResponder,而在iOS中UIWindow的父类是UIView。程序一般只有一个窗口但是会又很多视图。...2、UIView的作用:描画和动画,视图负责对其所属的矩形区域描画、布局和子视图管理、事件处理、可以接收触摸事件、事件信息的载体等等。...下面介绍的是view添加以及删除时所触发的方法 // 当视图添加子视图时调用 - (void)didAddSubview:(UIView *)subview; // 当子视图从本视图移除时调用...创建实例,添加到控制器的view,设背景色为紫色,并将001赋给tag值 override func viewDidLoad() { super.viewDidLoad() let...(deadline: .now()+3.0) { let view = UIView.init(frame: CGRect(x: 10, y: 100, width: 100, height:

    1.7K90

    iOS动画-CALayer布局属性详解

    UIView属性 CALayer属性 属性说明 frame frame 表示相对于其父视图的坐标位置 bounds bounds 表示相对于其自身的坐标位置,{0,0}通常是其左上角 center position...frame&&bounds.png 上图对原有视图做了旋转变换,之后的frame实际上代表了覆盖在图层旋转之后的整个轴对齐的矩形区域,此时frame的宽和高和bounds不再一致了。...换句话来讲就是:position是当前layer的anchorPoint在superLayer中的位置。...) UIView *viewB; @end @implementation TestLayerFiveVC - (void)viewDidLoad { [super viewDidLoad...(或视图)坐标系下的点或者矩形转换为另一个图层(或视图)坐标系下的点或者矩形;开发过程中我们通常操作的对象都是视图,所以下面以视图为例简单演示其用法:首先创建添加两个宽高都是100*100的橙色、紫色视图在控制器的

    2.3K20

    添加多个屏幕-创建格线布局

    您可以下载Final Xcode项目,以帮助您与自己的进度进行比较。 查看控制器 在主故事板中,让我们构建我们的集合视图。首先,把视图控制器从对象库旁边我们的视图控制器。...在第二个视图控制器和约束内插入一个UIView:0左,0右和0底(全部相对于superview)。取消选中“ 约束”到边距并将高度设置为380。 ?...从对象库中拖放标签并将其约束到Container中的水平居中并将顶部设置为30。...使用Command + R运行代码,然后修复2个错误。它将为您提供运行CollectionView所需的两种方法。 Sections中的项数和 Cell 在第一个函数内部,我们只需返回3。...文本是iPhone X并将底部约束为0并将容器中的水平中心约束。在“ 属性”检查器中,将“滚动方向”更改为“ 水平”并取消选中“ 显示”指示器。

    2.9K40

    iOS14开发-入门知识

    开发中的其他 UIView(及其子类)都放在该view上。 UIViewController中UIView的生命周期函数 viewDidLoad:View 完成内存加载。...UIView常见属性 backgroudColor:背景色。 frame:相对父视图的坐标和大小。 bounds:相对自身的坐标和大小,所以 bounds 的 x 和 y 永远为0。...UIView常见方法 addSubview:添加视图到父视图。 removeFromSuperview:将视图从父视图中移除(需提前讲解触摸方法)。...exchangeSubviewAtIndex:将2个位置的视图互换。 演示UIView与UIViewController Storyboard 注意左侧面板的视图层次结构。...连线的前提 Storyboard 中的 UIViewController 与想拖拽的类进行了关联。 经典的连线错误 UIView 连线后删除了类中的 @IBOutlet 或者 @IBAction。

    2.9K40
    领券