【转】 iPhone 实现图片的倒影

来源:互联网 发布:linux下oracle监听 编辑:程序博客网 时间:2024/04/29 21:15

在 viewDidLoad 方法中添加以下代码

- (void)viewDidLoad {        [super viewDidLoad];         [[[self view] layer] setBackgroundColor:[[UIColor blackColor] CGColor]];         UIImage *balloon = [UIImage imageNamed:@"b.jpg"];    CALayer *topLayer = [[CALayer alloc] init];         [topLayer setBounds:CGRectMake(0.0f, 0.0f, 320.0, 240)];         [topLayer setPosition:CGPointMake(160.0f, 120.0f)];         [topLayer setContents:(id)[balloon CGImage]];    [[[self view] layer] addSublayer:topLayer];    CALayer *reflectionLayer = [[CALayer alloc] init];         [reflectionLayer setBounds:CGRectMake(0.0f, 0.0f, 320.0, 240.0)];         [reflectionLayer setPosition:CGPointMake(160.0f, 310.0f)];    [reflectionLayer setContents:[topLayer contents]];    [reflectionLayer setValue:[NSNumber numberWithFloat:180.0] forKeyPath:@"transform.rotation.x"];    CAGradientLayer *gradientLayer = [[CAGradientLayer alloc] init];         [gradientLayer setBounds:[reflectionLayer bounds]];         [gradientLayer setPosition:CGPointMake([reflectionLayer bounds].size.width/2, [reflectionLayer bounds].size.height/2)];        [gradientLayer setColors:[NSArray arrayWithObjects: (id)[[UIColor clearColor] CGColor],(id)[[UIColor blackColor] CGColor], nil]];    [gradientLayer setStartPoint:CGPointMake(0.5,0.35)];         [gradientLayer setEndPoint:CGPointMake(0.5,1.0)];    [reflectionLayer setMask:gradientLayer];    [[[self view] layer] addSublayer:reflectionLayer];}



原创粉丝点击