我有UIImageView
,其中显然有UIImage
。我想仅在UIImage
上创建阴影效果。我的问题是我无法获取CGRect
中UIImage
的{{1}}所以我可以使用以下方法对其应用阴影效果。
UIImageView
请考虑此问题附带的图像。
这个问题也很关键,因为[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
上创建UIBezierPath
,而不仅仅是UIImageView
。与方法一样,我无法得到UIImage
的确切CGRect
。
任何解决方案?我错过了什么?
答案 0 :(得分:0)
UIImage总是矩形的,UIImageView也是如此。我相信你只想在裁剪区域的锯齿状边缘周围放置阴影吗?如果是这种情况,则无法使用此方法。您需要使用CoreGraphics或其他,以获得您想要的效果。例如,您可以在内存中创建此图像的副本,将其变黑并将其模糊并将其粘贴到图像后面以创建阴影效果。