首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >layer.mask梯度在iOS7中是固体的

layer.mask梯度在iOS7中是固体的
EN

Stack Overflow用户
提问于 2013-10-15 15:18:05
回答 1查看 1.9K关注 0票数 0

下一段代码在ios6中运行良好。它应该在视图中应用一个自上而下的内阿尔法梯度:

代码语言:javascript
复制
CAGradientLayer * gradient = [CAGradientLayer layer];
gradient.frame = self.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor clearColor] CGColor],
                   (id)[[UIColor whiteColor]CGColor],
                   (id)[[UIColor whiteColor]CGColor],
                   (id)[[UIColor clearColor] CGColor],
                   nil];

gradient.startPoint = CGPointMake(0.5, 0.0);
gradient.endPoint = CGPointMake(0.5, 1.0);
gradient.locations = [NSArray arrayWithObjects:@0,@(val),@(1.-val),@1,nil];

self.layer.mask = gradient;

但!如果我在iOS7中运行这段代码,而不是一个很好的混合α梯度,渐变的“透明”部分是纯白的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-15 17:03:26

我会把它放在注释中,但是格式将被关闭。在iOS 7中,这段代码片段适用于我,您可以根据您的需要对其进行调整。如果它仍然不起作用,那么我会说梯度不是问题。

代码语言:javascript
复制
+(void)addScrollingGradientToView:(UIView*)view
{
    //add in the gradient to show scrolling
    CAGradientLayer *nextImageFade = [CAGradientLayer layer];
    nextImageFade.frame = CGRectInset(view.bounds,-10,-10);

    nextImageFade.colors = [NSArray arrayWithObjects:(id)[UIColor colorWithRed:0. green:0. blue:0. alpha:0.].CGColor,
                            [UIColor colorWithRed:0. green:0. blue:0. alpha:1.0].CGColor,
                            [UIColor colorWithRed:0. green:0. blue:0. alpha:1.0].CGColor,
                            [UIColor colorWithRed:0. green:0. blue:0. alpha:0.0].CGColor,nil];
    nextImageFade.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],
                               [NSNumber numberWithFloat:20 / view.frame.size.height],
                               [NSNumber numberWithFloat:(view.frame.size.height - 20) / view.frame.size.height],
                               [NSNumber numberWithFloat:1.], nil];
    nextImageFade.startPoint = CGPointMake(.5, 0);
    nextImageFade.endPoint = CGPointMake(.5, 1);

    //Put in the fading last so that it is above everything else
    [view.layer setMask:nextImageFade];
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19384947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档