uiview图片倒影设置

来源:互联网 发布:江西财经大学数据库 编辑:程序博客网 时间:2024/05/04 00:51

今天搞图片浏览部分  要实现图片倒影在网上找了找  下了个demo   把关键的  实现记录下来:

// 添加layer及其倒影

- (UIView *)showImageAndReflection:(CALayer*)layer

{

    // 制作reflection

   CALayer *reflectLayer = [CALayerlayer];

    reflectLayer.contents = layer.contents;

    reflectLayer.bounds = layer.bounds;

    reflectLayer.position =CGPointMake(layer.bounds.size.width/2, layer.bounds.size.height*1.5);

    reflectLayer.transform =CATransform3DMakeRotation(M_PI,1, 0, 0);

    

    // 给该reflection加个半透明的layer

   CALayer *blackLayer = [CALayerlayer];

    blackLayer.backgroundColor = [UIColorblackColor].CGColor;

    blackLayer.bounds = reflectLayer.bounds;

    blackLayer.position =CGPointMake(blackLayer.bounds.size.width/2, blackLayer.bounds.size.height/2);

    blackLayer.opacity =0.6;

    [reflectLayeraddSublayer:blackLayer];

    

    // 给该reflection加个mask

    CAGradientLayer *mask = [CAGradientLayerlayer];

    mask.bounds = reflectLayer.bounds;

    mask.position =CGPointMake(mask.bounds.size.width/2, mask.bounds.size.height/2);

    mask.colors = [NSArrayarrayWithObjects:

                   (__bridgeid)[UIColorclearColor].CGColor,

                   (__bridgeid)[UIColorwhiteColor].CGColor,nil];

    mask.startPoint =CGPointMake(0.5,0.35);

    mask.endPoint =CGPointMake(0.5,1.0);

    reflectLayer.mask = mask;

    

    // 作为layersublayer

    [layeraddSublayer:reflectLayer];

    // 加入UICoverFlowViewsublayers

   UIView *reView =[[UIViewalloc]init];

    reView.bounds = layer.bounds;

    [reView.layeraddSublayer:layer];

   return reView;

}



0 0
原创粉丝点击