2012-03-20 166 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個圖像製作邊框;
  • 繪製角點圖像。