2011-11-09 29 views
10

enter image description hereiphone - 我怎样才能产生一个圆角和阴影的imageview?

东西跟上面一样吗?

我知道如何制作圆角:

imageView.layer.cornerRadius = 10; 
imageView.layer.shouldRasterize = YES; 
imageView.layer.masksToBounds = YES; 

对于影子,我曾尝试

imageView.layer.shadowOffset = CGSizeMake(1, 1); 
imageView.layer.shadowRadius = 5; 
imageView.layer.shadowOpacity = 0.4; 
imageView.layer.shadowColor = [UIColor blackColor].CGColor; 
imageView.layer.shouldRasterize = YES; 

imageView.layer.masksToBounds = YES;从圆角杀死的阴影。

另一个问题是如何产生一个完全像图像中显示的阴影?我在Photoshop中制作了这个图像,我用120度作为光线的方向。但是,如果我使用上面的代码,并关闭maskToBounds,我可以看到阴影,它很丑陋。

或者我可以在Photoshop中产生一个圆角+阴影图像框架并将该框架应用到我的应用程序中的每个图像?我认为这会带来更好的表现。如果所有图像都处于滚动状态,则阴影和转动图像会产生可怕的表现。

谢谢

回答

0

我会使用两个图像视图。具有阴影的背景png(可以重新用于每个图像)和具有圆角的前景png图像。

4

试试这个:

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:@"BattleMapSplashScreen.jpg"].CGImage; 
imageLayer.masksToBounds = YES; 
[sublayer addSublayer:imageLayer]; 

并采取看看original source

-1

您可能需要使用不同的层的阴影,并保持masksToBounds和舍入代码。在这个例子中imageView是名称要阴影图像视图和轮:

CALayer *shadowLayer = [[[CALayer alloc] init] autorelease]; 
sublayer.frame = imageView.bounds; 
sublayer.masksToBounds = NO; 
sublayer.shadowOffset = CGSizeMake(1, 1); 
sublayer.shadowRadius = 5; 
sublayer.shadowOpacity = 0.4; 
sublayer.shadowColor = [UIColor blackColor].CGColor; 
sublayer.shouldRasterize = YES; 

[imageView.layer insertSublayer:shadowLayer atIndex:0]; // Put it underneath the image 

这应该给你的影子。现在为了避免缓慢的重新计算,我建议在图像中创建一个UIImage。看到这个链接:Create UIImage from shadowed view while retaining alpha?

希望这会有所帮助!

相关问题