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

iOS动画-CALayer布局属性详解

下面的图示是将锚点{0.5,0.5}改为了{0,0},我们在这里更容易看到position与anchorPoint之间的关系: ?...这里提供一种方法如下: - (void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view{ CGPoint oldOrigin...锚点动画.gif 三、视图与图层的坐标系 CALayer给不同坐标系之间的图层转换提供了一些工具类方法: - (CGPoint)convertPoint:(CGPoint)p fromLayer:(nullable...)坐标系下的点或者矩形转换为另一个图层(视图)坐标系下的点或者矩形;开发过程中我们通常操作的对象都是视图,所以下面视图为例简单演示其用法:首先创建添加两个宽高都是100*100的橙色、紫色视图在控制器的...坐标系.png 使用下面的代码进行测试,结果如下: CGPoint targetPoint = CGPointMake(10, 10); CGPoint point1 = [purpleView convertPoint

2.2K20

辅助元素的创建(背景颜色、草坪、大地、小树、云彩)3. 雪山的实现4. 轨道的实现

辅助元素的创建(背景颜色、草坪、大地、小树、云彩) 辅助元素完成后的效果图: ?...雪山.png 3.3 需要注意的点 在画山的过程中,最复杂的是找到山上左右两侧山坡上边缘的那个点的CGPoint第一座山左边上坡上开始有雪的那个点来说。...其实要计算的是山脚到山顶两点之间的连线上任意一点的坐标。知道了X轴坐标,要计算Y轴坐标。 这个就是咱们初中学到的计算公式,y = kx + b。 k是斜率,b是截距。...这样给出这条线段上任意一点x轴坐标,就能轻易的算出y轴坐标了。xy都知道了,CGPoint不就知道了嘛。...Paste_Image.png 4.3 代码实现 绿色轨道绘制部分的代码: // 绿色铁轨的火车右侧进入,所以右侧开始绘画。

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

iOS动画-CALayer基础知识

视图的的职责就是创建并管理这个图层,确保子视图在层级关系中添加或者被移除的时候,它们的关联图层也同样对应在层级关系树当中有相同的操作。...不会自动重绘它的内容,CALayer把重绘的决定权交给了开发者; 2.绘制特点 尽管没有使用masksToBounds属性,但示例中绘制的视图依然被裁剪了,这是因为通过CALayer绘制寄宿图并没有超出边界外的内容提供绘制支持...锚点动画.gif 视图与图层的坐标系 CALayer给不同坐标系之间的图层转换提供了一些工具类方法: - (CGPoint)convertPoint:(CGPoint)p fromLayer:(nullable...)坐标系下的点或者矩形转换为另一个图层(视图)坐标系下的点或者矩形;开发过程中我们通常操作的对象都是视图,所以下面视图为例简单演示其用法:首先创建添加两个宽高都是100*100的橙色、紫色视图在控制器的...坐标系.png 使用下面的代码进行测试,结果如下: CGPoint targetPoint = CGPointMake(10, 10); CGPoint point1 = [purpleView convertPoint

1.8K50

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

2.1 示例 为了学习这个anchorPoint属性,下面创建一个闹钟的示例demo。 资源文件我是原文上截图下来的 ? 创建4个UIImageView并设置好约束(都是居中显示)。 ?...= CGPointMake(0.5f, 0.9f); self.hourHand.layer.anchorPoint = CGPointMake(0.5f, 0.9f); 运行完美。...CALayer也给我们提供了一些获取一个图层的绝对位置的方法,或者相对于另一图层的位置(而不是它当前父图层的位置): - (CGPoint)convertPoint:(CGPoint)point fromLayer...3.1 z坐标轴 和UIView的二维坐标不同,CALayer存在于一个三维空间中,它还提供了zPostion和anchorPointz属性。...-hitTest: -hitTest:方法同样接受一个CGPoint参数,但是返回的是图层本身,而不是BOOL类型。这使我们不用像-containsPoint:一样每个子图层去测试点击的坐标

56830

iOS(CGGeometry)几何类方法总结 原

一、几个常用结构体 struct CGPoint { CGFloat x; CGFloat y; }; 定义一个点,设置x坐标和y坐标 struct CGSize { CGFloat width;...origin; CGSize size; }; 定义一个矩形 二、几个系统定义的量 const CGPoint CGPointZero 零点,与CGPointMake(0, 0)等效 const CGSize...const CGRect CGRectInfinite 无限的矩形 三、一些常用方法 CGPoint CGPointMake(CGFloat x, CGFloat y); 创建一个点 CGSize CGSizeMake...注意:1、edge是一个宏,定义了分割的方式如下: typedef CF_ENUM(uint32_t, CGRectEdge) {   //x的最小处进行垂直分割   CGRectMinXEdge, ...  //y的最小处进行水平分割   CGRectMinYEdge,    //x最大处进行垂直分割   CGRectMaxXEdge,   //y最大处进行水平分割   CGRectMaxYEdge

89620

iOS开发CoreGraphics核心图形框架之一——CGPath的应用

在Objective-C工程中,CoreGraphics其中方法都是采用C语言风格进行编写的,同时其并不支持Objective-C的自动引用计数,在使用这个框架进行编程时,开发者要手动对内存进行管理。.../* 这个方法略微有些复杂 其中参数意义如下: path:要进行虚线化的路径 phase:lengths数组的第几部分开始绘制虚线 lengths:C风格的数组 其中为CGFloat值 表示每段虚线的绘制长度...center = CGPointMake(rect.size.width/2, rect.size.height/2); //创建圆角矩形路径 CGPathRef pathRef =.../* x:圆心x坐标 y:圆心y坐标 radius:弧线半径 startAngle:起始角度 endAngle:终止角度 clockwise:是否顺时针绘制 */ void CGPathAddArc(.../* x:圆心x坐标 y:圆心y坐标 radius:弧线半径 startAngle:起始角度 delta:圆弧绘制的长度 为弧度制 2π为整个圆 */ void CGPathAddRelativeArc

1.6K31

iOS开发CoreGraphics核心图形框架之六——梯度渐变

iOS开发CoreGraphics核心图形框架之六——梯度渐变 一、引言    关于颜色梯度渐变视图的创建,CoreGraphics框架中提供了两个类型CGShadingRef与CGGradientRef...CoreGraphics框架在绘制梯度渐变时,有两种绘制方式,分别为轴向绘制与径向绘制。...轴向绘制是指确定两个点,起点与终点连接的直线作为梯度渐变的轴,垂直于此轴的线共享相同的颜色,由起点终点进行颜色渐变。...前面说到,CGShadingRef与CGGradientRef都可以用于创建梯度渐变视图,这两个类型在使用使又有一些不同,CGShadingRef在使用使需要开发者为其提供一个颜色计算方法,CGGradientRef...则不需要,相比之下,CGGradientRef更像是为了方便开发者使用而CGShadingRef中扩展出的一个类型。

1K20

iOS开发——系统原生的二维码扫描

对于现在的App应用来说,扫描二维码这个功能是再正常不过的一个功能了,在早期开发这些功能的时候,大家或多或少的都接触过ZXing和ZBar这类的第三方库,但从iOS7以后,苹果就给我们提供了系统原生的API...扫码 扫码是使用系统原生的AVCaptureSession类来发起的,这个类在官方文档中给出的解释是AVFundation框架中Capture类的中枢,起到管理协调的作用,而扫码是一个摄像头(input...+0.7 , rect.origin.y + 15) }; CGPoint poinsTopLeftB[] = {CGPointMake(rect.origin.x, rect.origin.y...ctx:ctx]; //左下角 CGPoint poinsBottomLeftA[] = {CGPointMake(rect.origin.x+ 0.7, rect.origin.y...+ rect.size.height - 15),CGPointMake(rect.origin.x +0.7,rect.origin.y + rect.size.height)}; CGPoint

76430

绘图-几种基本统计图的实现分析

前言 在开发中我们会遇到各种统计图,或者各种绘图,本文通过基本三大统计图:折线图、柱状图、扇形图的实现来掌握基本统计图的绘制,在下一篇文中会带来复杂一些的绘图案例分析,循序渐进达、触类旁通达到绘制各式各样图表的能力...画直线 坐标轴、横竖线、连接线 - (void)drawLine:(CGContextRef)context startPoint:(CGPoint)startPoint endPoint:(CGPoint...使用UIBezierPath绘制扇形 在我这篇文章中我说过:UIBezierPath是在 UIKit 中的一个类,继承于NSObject,可以创建基于矢量的路径.此类是Core Graphics...动态扇形图.gif 使用CAShapeLayer 、UIBezierPath、CABasicAnimation实现动态扇形 使用strokeColor CGPoint center = CGPointMake...UIBezierPath *path = [UIBezierPath bezierPath]; 设定一个起点 [path moveToPoint:center]; 画圆弧 M_PI_2 90度,水平右边开始

1.4K10

iOS动画专题·UIView二维形变动画与CAAnimation核心动画(transform动画,基础,关键帧,组动画,路径动画,贝塞尔曲线)

1. iOS动画 总的来说,涉及类的形式来看,iOS动画有:基于UIView的仿射形变动画,基于CAAnimation及其子类的动画,基于CG的动画。这篇文章着重总结前两种动画。 2....其中,frame动画设置方式有限,必须确切地制定形变前后的frame,平移还好,特别是 旋转 的时候,只能通过数学知识计算出新的frame。这就得不偿失了。...一个view进行仿射变化就相当于view上的每个点做一个乘法,结果就是: ?...组动画 6.1 组动画 上面单一动画的情况在实际开发中实际比较少,更多的时候是组合这些动画:创建不同类型的动画对象,设置好它们的参数,然后把这些动画对象存进数组,传进组动画对象的animations属性中去...[path addLineToPoint:(CGPoint){SCREEN_WIDTH/3, SCREEN_HEIGHT/2+50}]; [path addLineToPoint:(CGPoint

3.2K21

常用开发技巧系列(四)

control + C  七:肯定有人让你获取一下苹果的设备ID:       这里在后面我也会总结出文章,针对的就是最后面的方法,要有人问你,你可以先把各种方式的好坏或者能不能用先说清楚:      ...UUID + keychain  获取到上面说的UUID之后保存在系统当中,就算用户卸载了APP之后还是能获取到相同的UUID,但是用户刷机重装系统后uuid还是会改变,越狱的设备可能会出现存储失败的问题...为核心,dx 和dy 缩小相应的值 CGRect CGRectOffset(CGRect rect, CGFloat dx, CGFloat dy) rect左上角为基点,X轴和...startPoint = CGPointMake(midX, CGRectGetMaxY(insetRect)); CGPoint endPoint = CGPointMake(midX...// gradient渐变颜色,startPoint开始渐变的起始位置,endPoint结束坐标,options开始坐标之前or开始之后开始渐变 CGContextDrawLinearGradient

1K90

Swift 范的 CGRect、CGSize 和 CGPoint(转)

我决定拥抱 Swift 到现在已经 8 个月了。这几个月中,我一边学习着如何避免写出 Objective-C 风格的 Swift 代码,一边真正开始使用这门新语言。...let rect = CGRectMake(0, 0, 100, 100) let point = CGPointMake(0, 0) let size = CGSizeMake(100, 100) 好了...iOS OS X 开发者能轻易说出这段代码的含义。这些语句早已烂熟于心,他们根本不会去纠结 CGGeometry 结构体的这些参数代表什么。...Swift 在很多方面对初学者都很友好,无论你是刚接触 Swift,还是刚接触编程。如果让初学者看上面的代码,他可能完全不知道那些数字的含义。...也终于不用为了修改 CGRect 的某一个值,而去创建一个全新的结构体了。

7.3K30

路径布局-基于数学函数的视图布局方法

@end MyCoordinateSetting就是一个对坐标进行抽象的类,类的定义中我们可以看出一个坐标设定的所有元素: 其中的origin用来指定坐标的原点在平面区域的位置,这里的值是一个相对值,...为了表示这种(x,y)点规则的数学函数,我们可以用如下三种方式来表征: 直角坐标方式: y = ?(x) 参数方程方式: y = ?(t),x = ?(t) 极坐标方式: r = ?(?)...如果返回的点无效,则请返回CGPointMake(NAN,NAN) */ @property(nonatomic, copy) CGPoint (^parametricEquation)(CGFloat...-(void)beginSubviewPathPoint:(BOOL)full; /** 结束获取子视图路径数据的方法 */ -(void)endSubviewPathPoint; /** 创建某个子视图到另外一个子视图之间的路径点...在界面布局时我们除了能用路径布局外MyLayout布局体系还分别提供了线性布局、相对布局、表格布局、框架布局、流式布局、浮动布局一共七种布局,在我的简书里面都有各种布局进行介绍的文档。

76720

CALayer之anchorPoint分析

anchorPoint:CALayer中心点,动画特效的中心点,取值区间[0.0, 1.0],默认为(0.5, 0.5); position:CALayer中心点坐标; frame.origin...当我们改变了anchorPoint,计算出的frame.origin也会随之改变,因此最终显示的图像就会发生偏移,这时就需要我们positionframe做适当的修改。...btnBlue.backgroundColor = [UIColor blueColor]; CGRect oldFrame = btnBlue.layer.frame; 修改anchorPoint: CGPoint...anchorPoint = CGPointMake(0.0, 0.5); btnBlue.layer.anchorPoint = anchorPoint; 修改之后,btnBlue显示位置向右偏移...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

21720

iOS开发——Core Graphics绘图

视图可以通过子视图、图层实现drawRect:方法来表现内容,如果说实现了drawRect:方法,那么最好就不要混用其他方法了,如图层和子视图。...画图可以使用默认路径画,或者单独创建path画图,对应画图的api并不完全相同,是两组名称相似的api,两组api常用的方法如下 CGContextMoveToPoint //设置起点 CGContextClosePath...画图片 [self drawPicture:ctx]; //画文字 [self drawText:ctx]; } 画线 第一个方法我写的比较详细,写了使用path的方式和直接画线的方式...//画线 -(void)drawLine:(CGContextRef)ctx{ //画一条简单的线 CGPoint points1[] = {CGPointMake...points2[] = {CGPointMake(60, 60),CGPointMake(80, 120),CGPointMake(20, 300)}; CGContextAddLines

2.4K20
领券