2013-02-20 65 views
0

enter image description hereenter image description here如何在UIImageView上實現這種效果(圓角,內部發光)?

我有一個黑暗的背景,所以我非常想在第一圖像上的斜角效果。

我試圖重新創建這些效果在我的UIImageViews優化使用UITableViewCells內可變大小的圖像,但我找不出一個完美的方式。

我還使用AFNetworking異步加載在細胞中的圖像,使用包裝的UIImageView + AFNetworking類,所以我加載圖像進入細胞是這樣的:

NSURL *originalURL = [NSURL URLWithString:@"url"]; 
[[cell _image] setImageWithURL:originalURL]; 

_image只是我的自定義表格單元格中的常規UIImageView

所以我的問題基本上是,你會如何做到這一點?

+0

使用CAlayers – 2013-02-20 08:29:00

回答

2

利用CALayers存在於QuartzCore框架中。

創建一個黑色背景和圓角的新圖層。然後我們將圖像作爲subLayer添加到它。

CALayer *sublayer = [CALayer layer]; 
sublayer.backgroundColor = [UIColor blueColor].CGColor; 
sublayer.shadowOffset = CGSizeMake(0, 3); 
sublayer.shadowRadius = 5.0; 
sublayer.shadowColor = [UIColor blackColor].CGColor; 
sublayer.shadowOpacity = 0.8; 
sublayer.frame = CGRectMake(30, 30, 128, 192); 
sublayer.borderColor = [UIColor blackColor].CGColor; 
sublayer.borderWidth = 2.0; 
sublayer.cornerRadius = 10.0; 
[self.view.layer addSublayer:sublayer]; 

CALayer *imageLayer = [CALayer layer]; 
imageLayer.frame = sublayer.bounds; 
imageLayer.cornerRadius = 10.0; 
imageLayer.contents = (id) [UIImage imageNamed:@"myImage.png"].CGImage; 
imageLayer.masksToBounds = YES; 
[sublayer addSublayer:imageLayer]; 

爲了提供發光效果,請使用此代碼。

CABasicAnimation* animation1 = [CABasicAnimation animationWithKeyPath:@"opacity"]; 
[animation1 setDuration:1.0]; 
[animation1 setRepeatCount:INT_MAX]; 
[animation1 setFromValue:[NSNumber numberWithFloat:0.0]]; 
[animation1 setToValue:[NSNumber numberWithFloat:1.0]]; 
[subLayer addAnimation:animation1 forKey:nil];