2012-03-20 165 views

回答

3

在特定大小创建影子作为透明层,也创建具有伸缩性的图像,如下所示:

UIImage *shadowImage = [UIImage imageNamed:@"shadow.png"]; 
shadowImage = [shadowImage stretchableImageWithLeftCapWidth:floorf(shadowImage.size.width/2) topCapHeight:floorf(shadowImage.size.height/2)]; 

将图像中一个UIImageView与contentMode作为规模以适应。

将您的视图称为“sView”。你可以像这样添加阴影:

UIImageView *shadowImgView = [[UIImageView alloc] initWithImage:shadowImage]; 
shadowImgView.contentMode = UIViewContentModeScaleToFill; 
shadowImgView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
shadowImgView.frame = sView.bounds; 
[sView shadowImgView]; 
[shadowImgView release]; // only needed if you aren't using ARC 
+1

谢谢,但你是一个shadow.png的例子吗? – Royal 2012-03-20 10:23:51

+1

这对我有效。你可以尝试在这里samvermette的答案:http://stackoverflow.com/questions/3231690/inner-shadow-in-uilabel – nithin 2012-03-20 10:28:44

+0

我只是碰巧有一个阴影顶部和左,但不是底部和右O_O – Royal 2012-03-20 11:12:31

0

你可以尝试使用一些图片(因为它适用于HTML),但我不认为这是比你更好的例子:

  • 需要4张小图片做的纹理之上,左,右和下边界
  • 您需要4张图片作为视图的角落;
  • 绘制使用重复从前4个图像制作边框;
  • 绘制角点图像。