【发布时间】:2017-08-26 09:07:11
【问题描述】:
我有一个UIImageView,其中我显然有一个UIImage。我只想在UIImage 上创建阴影效果。我的问题是我无法在UIImageView 中获得UIImage 的CGRect,所以我可以使用以下方法对其应用阴影效果。
[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。
有什么解决办法吗?我错过了什么?
【问题讨论】:
-
为什么我会得到减分
标签: ios objective-c uiimageview uiimage uibezierpath