穿透接口说明
TABBaseComponent在2.5.1版本新增了penetrate接口,用于穿透组件
使用场景
当开发者本地存在数据时,使用penetrate可以在动画时显示原组件
- 原始组件
- 自动化生成效果
- 穿透效果
使用代码
viewAnimated.adjustBlock = ^(TABComponentManager * _Nonnull manager) {
manager.animations(0, 2).penetrate();
};
实现原理
在预处理回调中,标记所有需要被穿透的组件。
在骨架屏绑定时机中,使用贝塞尔曲线画出CAShapeLayer,规则定位kCAFillRuleEvenOdd,即被描绘的区域不填充,最后通过mask盖在对应的layer之上。