原理剖析:
在視圖中的主圖層(CALayer)再添加一個子圖層,确定其frame(位置),copy一份主圖層的内容然後繞Y軸翻轉一下---
const CGFloat kReflectPercent = 0.25f;
const
CGFloat kReflectOpacity = 0.7f;
CGFloat kReflectDistance = 5.0f;
CALayer
*reflectionLayer = [CALayer layer];
reflectionLayer.contents = [self.image layer].contents;
reflectionLayer.opacity = kReflectOpacity;
reflectionLayer.frame =
CGRectMake(0.0f,self.image.frame.size.height+kReflectDistance,self.image.frame.size.width,self.image.frame.size.height*kReflectPercent);
//倒影層架構設定,其中高度是原視圖的百分比
CATransform3D stransform =
CATransform3DMakeScale(1.0f,-1.0f,1.0f);
//CATransform3D transform =
CATransform3DTranslate(stransform,0.0f,0.0f,0.0f);
reflectionLayer.transform = stransform;
reflectionLayer.sublayerTransform =
reflectionLayer.transform;
[[self.image
layer] addSublayer:reflectionLayer];
網絡上志同道合,我們一起學習網絡安全,一起進步,QQ群:694839022