穿透接口說明
TABBaseComponent在2.5.1版本新增了penetrate接口,用于穿透組件
使用場景
當(dāng)開發(fā)者本地存在數(shù)據(jù)時,使用penetrate可以在動畫時顯示原組件
- 原始組件

origin.png
- 自動化生成效果

auto.png
- 穿透效果

penetrate.png
使用代碼
viewAnimated.adjustBlock = ^(TABComponentManager * _Nonnull manager) {
manager.animations(0, 2).penetrate();
};
實現(xiàn)原理
在預(yù)處理回調(diào)中,標(biāo)記所有需要被穿透的組件。
在骨架屏綁定時機中,使用貝塞爾曲線畫出CAShapeLayer,規(guī)則定位kCAFillRuleEvenOdd,即被描繪的區(qū)域不填充,最后通過mask蓋在對應(yīng)的layer之上。