2017-08-26 59 views
-1

我有一個UIImageView,其中我明顯有一個UIImage。我只想在UIImage上創建陰影效果。我的問題是,我無法在UIImageView中獲得UIImageCGRect,所以我可以通過使用以下方法對其應用陰影效果。如何在UIImage邊界上創建陰影效果

[mImageView.layer.shadowColor = [UIColor grayColor].CGColor; 
mImageView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); 
mImageView.layer.shadowOpacity = 0.9f; 
mImageView.layer.masksToBounds = NO; 
CGRect imageFrame = mImageView.frame; 

UIEdgeInsets shadowInsets  = UIEdgeInsetsMake(0, 0, -1.5f, 0); 
UIBezierPath *shadowPath  = [UIBezierPath bezierPathWithRect:UIEdgeInsetsInsetRect(imageFrame, shadowInsets)]; 
mImageView.layer.shadowPath = shadowPath.CGPath; 

請考慮爲此問題附加的圖像。 該問題也很重要,因爲UIImage可以是剛性尺寸的圖像,因爲它是裁剪後的圖像,您可以在附圖中看到。

UIImageView’s綁定等於視圖的邊界在這裏。因此,當使用上述方法應用效果時,它會在整個UIImageView上創建一個UIBezierPath,而不僅僅是UIImage。在該方法中,我無法得到UIImage的確切CGRect

任何解決方案?我錯過了什麼?

cropped image

+0

爲什麼我得到負分 –

回答

0

的UIImage總是矩形,所以是的UIImageView。我相信你只想把陰影只放在裁剪區域的鋸齒狀邊界上嗎?如果是這種情況,則不能使用此方法。您需要使用CoreGraphics或其他軟件來獲得所需的效果。例如,您可以在內存中創建此圖像的副本,將其變黑,然後模糊它並將其粘貼到圖像後面以創建一個陰影效果。

相關問題