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

Posted

技术标签:

【中文标题】仅 UIImageView 顶部和底部的内部阴影(目标 C)【英文标题】:Inner Shadow to UIImageView Top and Bottom only (Objective C) 【发布时间】:2018-03-20 14:23:01 【问题描述】:

我想将内部阴影添加到我的 UIImageView 中,如下所示:(以下是需要在图像视图上添加预期的阴影)

仅在顶部和底部应用阴影框架,而不是在前导和 尾随。

我已经尝试了下面的代码,但没有得到预期的输出。

- (void)viewDidLoad 
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    UIView * mapCover = [UIView new];
    CGRect frameImage = self.bgImageView.frame;
    frameImage.origin.x = -50;
    frameImage.size.width = frameImage.size.width+50;
    mapCover.frame = frameImage;
    [self.view addSubview:mapCover];

    CAGradientLayer * vertical = [CAGradientLayer layer];
    vertical.frame = mapCover.bounds;
    vertical.colors = [NSArray arrayWithObjects:(id)[UIColor blackColor].CGColor,
                       (id)[[UIColor whiteColor] colorWithAlphaComponent:0.0f].CGColor,
                       (id)[[UIColor whiteColor] colorWithAlphaComponent:0.0f].CGColor,
                       (id)[UIColor whiteColor].CGColor, nil];
    vertical.locations = @[@0.01,@0.1,@0.9,@0.99];
    [mapCover.layer insertSublayer:vertical atIndex:0];

    CAGradientLayer * horizontal = [CAGradientLayer layer];
    horizontal.frame = mapCover.bounds;
    horizontal.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor,
                         (id)[[UIColor whiteColor] colorWithAlphaComponent:0.0f].CGColor,
                         (id)[[UIColor whiteColor] colorWithAlphaComponent:0.0f].CGColor,
                         (id)[UIColor whiteColor].CGColor, nil];
    horizontal.locations = @[@0.01,@0.1,@0.9,@0.99];
    horizontal.startPoint = CGPointMake(0.0, 0.5);
    horizontal.endPoint = CGPointMake(1.0, 0.5);
    [self.bgImageView.layer insertSublayer:horizontal atIndex:0];

【问题讨论】:

您的帖子没有明确您的问题。图像是您试图 获得的吗?或者它是你目前正在做的事情的结果?如果这是您当前的结果,您还需要显示您想要获得的图像。 我会更新的 【参考方案1】:

已解决!!!

使用下面链接中的 UIView 类别:其中有枚举 上|下|左|右

// Add a shadow to the top and bottom of the view
[exampleView addInnerShadowWithRadius:3.0f
                             andColor:[UIColor colorWithWhite:0 alpha:0.45f]
                          inDirection:NLInnerShadowDirectionBottom | NLInnerShadowDirectionTop];

http://www.nathanlampi.com/posts/10002/UIView-Inner-Shadow.html

【讨论】:

以上是关于仅 UIImageView 顶部和底部的内部阴影(目标 C)的主要内容,如果未能解决你的问题,请参考以下文章

仅CSS框阴影底部[重复]

UITableView 阴影顶部和底部

如何在颤动中显示具有顶部和底部渐变阴影的图像?

如何在swift中仅向UIVIEW的顶部和底部添加阴影

Swift - 在 3 个方向(顶部、右侧或底部)随机旋转 UIImageView

从 UIImageView 中删除顶部/底部填充