美文网首页
ios 实现透明度渐变 逐渐消失效果

ios 实现透明度渐变 逐渐消失效果

作者: 天上飞的狒狒 | 来源:发表于2023-05-01 16:49 被阅读0次

    直接上代码
    注意事项
    *- (void)addMaskToMenuView:(UIView )menuView 中的menuview一定不能设置透明度为0

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.view.backgroundColor = [UIColor systemPinkColor];
        
        UIView *bgcView = [[UIView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 40)];
    //    bgcView.backgroundColor = UIColor.orangeColor;
        [self.view addSubview:bgcView];
        
        UIScrollView *titleScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10, 0, self.view.frame.size.width - 60, 40)];
    //    titleScrollView.backgroundColor = UIColor.greenColor;
        titleScrollView.showsHorizontalScrollIndicator = NO;
        [bgcView addSubview:titleScrollView];
        
        CGFloat buttonx = 0;
        CGFloat lineWidth = 10;
        for (NSInteger i = 0; i < 10; i++) {
            UIButton *titleButton = [[UIButton alloc] initWithFrame:CGRectMake(buttonx, 0, 50, 40)];
    //        titleButton.backgroundColor = UIColor.redColor;
            [titleButton setTitle:@"123" forState:(UIControlStateNormal)];
            [titleButton setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];
            [titleScrollView addSubview:titleButton];
            buttonx = buttonx + lineWidth + 50;
        }
        titleScrollView.contentSize = CGSizeMake(50*10+9*10+30, 40);
        
        
        [self addMaskToMenuView:bgcView];
        
        
        UIView *aaView = [[UIView alloc] initWithFrame:CGRectMake(self.view.frame.size.width - 60, 100, 60, 40)];
        aaView.backgroundColor = UIColor.blueColor;
        [self.view addSubview:aaView];
        
    }
    
    - (void)addMaskToMenuView:(UIView *)menuView {
        NSObject *transparent = (NSObject *)[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0].CGColor;
        NSObject *opaque = (NSObject *)[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0].CGColor;
        CALayer *maskLayer = [CALayer layer];
        maskLayer.frame = menuView.bounds;
        CAGradientLayer *gradientLayer = [CAGradientLayer layer];
        gradientLayer.frame = maskLayer.bounds;
        gradientLayer.colors = @[opaque, transparent];
        gradientLayer.locations = @[@((menuView.frame.size.width - 110) / menuView.frame.size.width),@((menuView.frame.size.width - 60) / menuView.frame.size.width)];
        gradientLayer.startPoint = CGPointMake(0, 0.5);
        gradientLayer.endPoint = CGPointMake(1, 0.5);
        [maskLayer addSublayer:gradientLayer];
        menuView.layer.mask = maskLayer;
    }
    

    相关文章

      网友评论

          本文标题:ios 实现透明度渐变 逐渐消失效果

          本文链接:https://www.haomeiwen.com/subject/rtiojdtx.html