永发信息网

iOS中CALayer的subLayer是什么样的数据结构,重绘顺序是怎么样的

答案:2  悬赏:80  手机版
解决时间 2021-11-26 11:31
iOS中CALayer的subLayer是什么样的数据结构,重绘顺序是怎么样的
最佳答案
数据结构跟UIView的subView一样,都是一个树形的结构
重绘机制:当调用setNeedsDisplay的时候会重新调用render方法,而CALayer实际是维护个三个模型的树形结构,一个是渲染树,一个是呈现树,还有一个是当前模型树:

Layer的渲染架构[重要]
Layer也和View一样存在着一个层级树状结构,称之为图层树(Layer Tree),有以下三种:
(1)模型树(Model Tree)直接创建的或者通过UIView获得的(view.layer)用于显示的图层树,称之为模型树(Model Tree);
模型树的背后还存在两份图层树的拷贝,一个是呈现树(Presentation Tree),一个是渲染树(Render Tree).
(2)呈现树(Presentation Tree),呈现树可以通过普通layer(其实就是模型树)的layer.presentationLayer获得
模型树则可以通过modelLayer属性获得.模型树的属性在其被修改的时候就变成了新的值,这个是可以用代码直接操控的部分;呈现树的属性值和动画运行过程中界面上看到的是一致的.
(3)渲染树(Render Tree),渲染树是私有的,你无法访问到,渲染树是对呈现树的数据进行渲染,为了不阻塞主线程,渲染的过程是在单独的进程或线程中进行的,所以你会发现Animation的动画并不会阻塞主线程.
全部回答
如何在ios中运用core animation暂停和继续动画 核心代码如下 //暂停layer上面的动画 - (void)pauseLayer:(CALayer*)layer { CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil]; layer.speed = 0.0; layer.ti
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
今天新装台电脑玩游戏,i3的cpu游戏多开cpu占
电阻混联阻值怎么算(两个电阻串联,然后另一
魅蓝 E 和 HTC M8 哪个手机好?现在价格一样
举头邀明月下一句什么呢
小锅显示信号中断
中国农业银行(德州河东支行)地址在哪,我要去
民间所说五方石是什意思
红河世纪风小熊猫软盒多少钱包?
美团酒店商家整个天天特价需要收费吗
rsi指标中,rsi1值92rsi2值90这会股票能不能
全身性多汗怎么控制?
cad 怎样画门窗立面图,也就是门窗大样图
女生说我在外面很浪吧,什么意思
合川市三汇中学校地址在什么地方,想过去办事
做美甲美睫的娓美美妆和美莉荟是一家吗?
推荐资讯
饥荒旗鱼怎么打 饥荒旗鱼怎么杀打法介绍
世界十大眼镜品牌
中考我查了一下被学校录取了,但比我考多分(
15x()<610最大能填几
联想笔记本电脑的处理器A8好还是i5好?
糖减少5g,能否使用碳水化合物功能声称
梅保玖去世时间
星空咖啡地址好找么,我有些事要过去,
对联,雅称「楹联」,俗称对子
盖独自一院主房是8米x17米能住两家人的二层房
前拨蹭链条 山地车前拨和链条有摩擦怎么办
用了它老样子,不用它样子老。歧义句的两种理
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?