iOS 动画 第六章 专用图层

iOS 动画 第六章 专用图层,第1张

//CAShapeLayer:是一个通过矢量图形而不是bitmap来绘制的图层子类。CAShapeLayer属性是CGPathRef类型

//创建一个CGPath

//lineWith(线宽,用点表示单位),lineCap(线条结尾的样子),和lineJoin(线条之间的结合点的样子);但是在图层层面你只有一次机会设置这些属性。如果你想用不同颜色或风格来绘制多个形状,就不得不为每个形状准备一个图层了。

//Core Animation提供了一个CALayer的子类CATextLayer,它以图层的形式包含了UILabel几乎所有的绘制特性,并且额外提供了一些新的特性。

//NSAttributedStringiOS 6及以上可以用新的NSTextAttributeName实例来设置我们的字符串属性,在iOS 5及以下,用Core Text,也就是需要把Core Text framework添加到项目中。

//由于绘制的实现机制不同(Core Text和WebKit),用CATextLayer渲染和用UILabel渲染出的文本行距和字距也不是不尽相同的。

//继承UILabel,然后添加一个子图层CATextLayer并重写显示文本的方法。

//我们继承了UIView,那我们就可以重写+layerClass方法使得在创建的时候能返回一个不同的图层子类。UIView会在初始化的时候调用+layerClass方法,然后用它的返回类型来创建宿主图层。

//例子:LayerLabelh

//CATransformLayer不同于普通的CALayer,因为它不能显示它自己的内容。只有当存在了一个能作用域子图层的变换它才真正存在。CATransformLayer并不平面化它的子图层,所以它能够用于构造一个层级的3D结构,比如我的手臂示例。

//CAGradientLayer:是用来生成两种或更多颜色平滑渐变的。

//colors属性:数组成员接受CGColorRef类型的值

//startPoint和endPoint属性,他们决定了渐变的方向。这两个参数是以单位坐标系进行的定义,所以左上角坐标是{0, 0},右下角坐标是{1, 1}

//locations属性是一个浮点数值的数组(以NSNumber包装)。这些浮点数定义了colors属性中每个不同颜色的位置,同样的,也是以单位坐标系进行标定。00代表着渐变的开始,10代表着结束。

//CAReplicatorLayer:的目的是为了高效生成许多相似的图层。它会绘制一个或多个图层的子图层,并在每个复制体上应用不同的变换。

//frame属性是由bounds属性自动计算而出的,所以更改任意一个值都会更新其他值。

//-scrollToPoint:它自动适应bounds的原点以便图层内容出现在滑动的地方

//- (void)scrollPoint:(CGPoint)p;

//- (void)scrollRectToVisible:(CGRect)r;

//@property(readonly) CGRect visibleRect;

//CATiledLayer为载入大图造成的性能问题提供了一个解决方案:将大图分解成小片然后将他们单独按需载入

//小片裁剪

//CAEmitterLayer:是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果

//CAEmitterCell:一个CAEmitterCell类似于一个CALayer:它有一个contents属性可以定义为一个CGImage

//这种粒子的某一属性的初始值。比如,color属性指定了一个可以混合内容颜色的混合色。在示例中,我们将它设置为桔色。

//例子某一属性的变化范围。比如emissionRange属性的值是2π,这意味着例子可以从360度任意位置反射出来。如果指定一个小一些的值,就可以创造出一个圆锥形

//指定值在时间线上的变化。比如,在示例中,我们将alphaSpeed设置为-04,就是说例子的透明度每过一秒就是减少04,这样就有发射出去之后逐渐小时的效果。

//当iOS要处理高性能图形绘制,必要时就是OpenGL。

//OpenGL提供了Core Animation的基础,它是底层的C接口,直接和iPhone,iPad的硬件通信,极少地抽象出来的方法。OpenGL没有对象或是图层的继承概念。它只是简单地处理三角形。OpenGL中所有东西都是3D空间中有颜色和纹理的三角形。用起来非常复杂和强大,但是用OpenGL绘制iOS用户界面就需要很多很多的工作了

//在iOS 5中,苹果引入了一个新的框架叫做GLKit,它去掉了一些设置OpenGL的复杂性,提供了一个叫做CLKView的UIView的子类,帮你处理大部分的设置和绘制工作。前提是各种各样的OpenGL绘图缓冲的底层可配置项仍然需要你用CAEAGLLayer完成,它是CALayer的一个子类,用来显示任意的OpenGL图形。

框架(AVFoundation)提供的 它和Core Animation紧密地结合在一起,提供了一个CALayer子类来显示自定义的内容类型。

//我们只是了解到这些图层的皮毛,像CATiledLayer和CAEMitterLayer这些类可以单独写一章的。

本文适用对象:刚接触ArcGIS的同学。下面会对之后开发会接触到的重要概念作出官方+自己的解释。了解了这些概念有助于快速入门

GIS是地理信息系统的缩写:Geographic Information System。是一套空间信息系统,可以借助于计算机软硬件收集、管理和分析数据。可以集成多种数据类型,展示2D、3D界面,把地理信息可视化,可以让地理数据更好的服务于生产生活,是一种空间能力的体现。

ArcGIS是提供地理信息能力的一系列软件,包括制图,展示,应用等等。ArcGIS for iOS是具体到iOS平台端能力的体现。为iOS平台提供了2D/3D地图,导航,绘制,地理编码,空间测量分析等功能。

底图图层是最基础的图层,为整个地图应用提供视觉效果的上下文。它通常包括覆盖全球范围的地理信息数据,也包括多种类型,比如,大陆、湖泊等地理特征,街道、道路、行政边界等人文特征、可以是2D平面图、影像图,也可以是卫星图。

底图在一个应用中通常添加为应用的第一层,提供基础地图数据。常用的底图包括:高德、天地图、雅虎、谷歌等。但并不是说底图是必须的

数据层,也叫做 *** 作层,是一个可以访问具体地理信息的图层,数据源通常有服务端或者本地文件提供。数据层是用户主要 *** 作的图层,数据层有不同的类型,根据不同的类型,你可以:访问地理信息,比如热力图,交通情况,也可以通过SQL或者空间查询来查询某一个具体的地理信息点,获取改位置的所有地理信息,你也可以修改这个地理信息、进行空间测绘、空间分析等功能

数据层往往是添加在底图图层上的一个图层,而往往一个数据层又有多个子图层组合而成,你可以获取到每一个子图层来获取改图层的属性和控制改图层的显示。

图形层是用于展示地图上的点,线,文字,等视觉元素的,通常是由客户端自主绘制而成的。可以是2D也可以是3D的。比如定位时候用的大头针:

而为了始终能够看到这些视觉元素,在展示过程当中,图形层是最后添加到地图上的,如下图所示:

为了描述一个视觉元素改如何绘制,通常每一个绘制对象,你需要告诉他他要绘制的地理坐标和改如何绘制渲染(点、面、线、多边形)

Map 是图层(Layers)的容器,对于多层图层,可以进行添加,删除,排序,设置可见性。Map主要用来展示2D的地理信息

Scene同样是图层(Layers)的容器,相对于Map而言,Scene是可以展示3D的地理信息的。但是在API上,Scene的设计和Map的设计略有不同。

以上就是关于iOS 动画 第六章 专用图层全部的内容,包括:iOS 动画 第六章 专用图层、ArcGIS for iOS 系列教程 之重要概念、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9755158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存