您的位置:首页 > 产品设计 > UI/UE

uiview图片倒影设置

2014-03-06 17:35 267 查看
今天搞图片浏览部分  要实现图片倒影在网上找了找  下了个demo   把关键的  实现记录下来:

// 添加layer及其“倒影”
- (UIView *)showImageAndReflection:(CALayer*)layer
{

    //
制作reflection
   
CALayer *reflectLayer = [CALayer
layer];
    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 = [CALayer
layer];

    blackLayer.backgroundColor = [UIColor
blackColor].CGColor;
    blackLayer.bounds = reflectLayer.bounds;
    blackLayer.position =
CGPointMake(blackLayer.bounds.size.width/2, blackLayer.bounds.size.height/2);
    blackLayer.opacity =
0.6;
    [reflectLayer
addSublayer:blackLayer];

    

    //
给该reflection加个mask

    CAGradientLayer *mask = [CAGradientLayer
layer];
    mask.bounds = reflectLayer.bounds;

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

    mask.colors = [NSArray
arrayWithObjects:
                   (__bridge
id)[UIColor
clearColor].CGColor,
                   (__bridge
id)[UIColor
whiteColor].CGColor,
nil];
    mask.startPoint =
CGPointMake(0.5,
0.35);
    mask.endPoint =
CGPointMake(0.5,
1.0);
    reflectLayer.mask = mask;

    

    //
作为layer的sublayer
    [layer
addSublayer:reflectLayer];

    //
加入UICoverFlowView的sublayers
   
UIView *reView =[[UIView
alloc]init];
    reView.bounds = layer.bounds;
    [reView.layer
addSublayer:layer];
   
return reView;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios uiview 倒影