如何在UIImage边界上创建阴影效果
问题描述:
我有一个UIImageView
,其中我明显有一个UIImage
。我只想在UIImage
上创建阴影效果。我的问题是,我无法在UIImageView
中获得UIImage
的CGRect
,所以我可以通过使用以下方法对其应用阴影效果。如何在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
。
任何解决方案?我错过了什么?
答
的UIImage总是矩形,所以是的UIImageView。我相信你只想把阴影只放在裁剪区域的锯齿状边界上吗?如果是这种情况,则不能使用此方法。您需要使用CoreGraphics或其他软件来获得所需的效果。例如,您可以在内存中创建此图像的副本,将其变黑,然后模糊它并将其粘贴到图像后面以创建一个阴影效果。
为什么我得到负分 –