天天看點

給視圖添加倒影效果(包括圖檔視圖)

原理剖析:

在視圖中的主圖層(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

繼續閱讀