如何在 UIImageView iOS 上设置阴影渐变图像

Posted

技术标签:

【中文标题】如何在 UIImageView iOS 上设置阴影渐变图像【英文标题】:How to set shadow gradient image on UIImageView iOS 【发布时间】:2014-07-21 12:09:57 【问题描述】:

嘿,我是 iPhone 新手,我一直在尝试使用阴影渐变图像为 UIImageView 设置阴影,即使用以下代码的“Image-Shadow.png”。

    imageView.layer.shadowColor = [UIColor colorWithPatternImage:[UIImage 
    imageNamed:@"Image-Shadow.png"]].CGColor;

    imageView.layer.shadowOffset = CGSizeMake(0, 1);
    imageView.layer.shadowOpacity = 1;
    imageView.clipsToBounds = NO;
    imageView.layer.shouldRasterize = YES;

我的问题是,我没有在我的UIImageView 中使用上面的代码。您能告诉我这是在UIImageView 中添加阴影图像的正确方法吗?还是可以通过其他方式?

【问题讨论】:

imageView.clipsToBounds = NO;将其设为“是”并尝试让我知道结果.... 感谢@Spynet 我已将其设置为 YES.. 但我的问题仍然相同。 _imageView.layer.shadowColor = [UIColor blackColor].CGColor; _imageView.layer.shadowOffset = CGSizeMake(1, -3); _imageView.layer.shadowOpacity = 1; _imageView.clipsToBounds = 是; _imageView.layer.shouldRasterize = YES; 【参考方案1】:

图片有问题。我认为您不能提供图案图像来创建阴影! 给像[UIColor blackColor].CGColor这样的正确颜色,它应该可以工作。

【讨论】:

@AdithyaThanks.. 使用 [UIColor blackColor].CGColor 它正在工作。但需要根据我的要求为阴影渐变添加图像。我不知道我的测试人员想从我这里得到什么 :) 在第一个图像视图后面添加另一个图像视图,框架稍大?向其中添加阴影图像。 你能告诉我我在模拟器上测试,而不是在我的设备上。这是我的图像视图中没有阴影渐变的原因吗? 不应该是个问题【参考方案2】:

问题出在这一行:

imageView.layer.shadowOffset = CGSizeMake(0, 1);

您在哪里设置阴影,但没有给它一个可见的空间来显示它自己。 应为这两个参数赋予正值或负值。 正值将视图“向下”和“向右”拉伸,负值将视图“向左”和“向上”拉伸。

【讨论】:

你想说什么,我是否需要在我的代码中删除这个给定的 shadowOffSet 属性?【参考方案3】:

根据我的要求,这是我的解决方案:

//set shadow gradient on image view

UIView *shadowView = [[UIView alloc] initWithFrame:imageView.frame]; //add view behind the image view

shadowView.layer.contents = (id) [UIImage imageNamed:@"Image-Shadow.png"].CGImage;

[imageView addSubview:shadowView];

谢谢大家。

【讨论】:

以上是关于如何在 UIImageView iOS 上设置阴影渐变图像的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如何在按钮中显示阴影图像?

带有透明 UIImageView (iOS) 的页面卷曲动画

仅 UIImageView 顶部和底部的内部阴影(目标 C)

如何在不丢失阴影饱和度的情况下将带有阴影的 UIBezierpath 转换为 UIImage

带角的 UIImageView 的阴影不可见

为具有圆角的UIImageView创建阴影?