iOS動畫之倒影
1.結果展示
2.實現思路
1.用複製圖層實現,搞個UIImageView展示圖片,然後複製UIImageView.
注意:複製圖層只能複製子層,但是UIImageView只有一個主層,並沒有子層,因此不能直接複製UIImageView.
2.正確做法:應該把UIImageView添加到一個UIView上,然後複製UIView的層,就能複製UIImageView.
注意:預設A控制項是B控制項的子控制項,那麼A控制項的層就是B控制項的層的子層。
3.但是有問題,預設UIView的層不是複製層,我們想把UIView的層變成複製層,重寫+layerClass方法。
+ (Class)layerClass{ return [CAReplicatorLayer class];}
4.倒影效果:就是就是把複製圖片旋轉180度,然後往下平移,最好先位移在,在旋轉。
CAReplicatorLayer *layer = (CAReplicatorLayer *)self.v.layer; layer.instanceCount = 2; // 先Y軸位移 CATransform3D transform = CATransform3DMakeTranslation(0, self.v.bounds.size.height, 0); // 在旋轉 transform = CATransform3DRotate(transform, M_PI, 1, 0, 0); // 設定複製層的形變 layer.instanceTransform = transform; // 設定色彩通道位移量,相等上一個一點位移量,就是陰影製作效果 layer.instanceRedOffset = -0.1; layer.instanceGreenOffset = -0.1; layer.instanceBlueOffset = -0.1; layer.instanceAlphaOffset = -0.1;
3.Demo實現