UIButton设置渐变色背景

 

-(void)setBottomButton{

    CGFloat w = 345*SCALE;

    CGFloat h = 50*SCALE;

    

    UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];

    [self.view addSubview:button];

    button.frame = CGRectMake(0, 0, w, h);

    button.top = self.tableView.bottom + 30*SCALE;

    button.centerX = SCR_W/2.;

    [button setTitle:@"开始导航" forState:UIControlStateNormal];

    button.titleLabel.font = FONT(18);

    [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    button.layer.cornerRadius = 10*SCALE;

    button.layer.masksToBounds = YES;

    

    UIImage *bgImage;

    {

        CGSize size = CGSizeMake(w, h);

        UIGraphicsBeginImageContextWithOptions(size, YES, 1.0);

        CGContextRef context = UIGraphicsGetCurrentContext();

        

        CAGradientLayer *gradientLayer =  [CAGradientLayer layer];

        gradientLayer.frame = CGRectMake(0, 0, w, h);

        gradientLayer.startPoint = CGPointMake(0, 0);

        gradientLayer.endPoint = CGPointMake(1, 0);

        gradientLayer.locations = @[@(0.5),@(1.0)];//渐变点

        [gradientLayer setColors:@[(id)[COLOR(0x5280F7) CGColor],(id)[COLOR(0x2C70E8) CGColor]]];

        

        [gradientLayer renderInContext:context];

        

        bgImage = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();

    }

    

    [button setBackgroundImage:bgImage forState:UIControlStateNormal];

    

    [button addTarget:self

               action:@selector(bottomBarAction:)

     forControlEvents:UIControlEventTouchUpInside];

}

### 回答1: 可以使用以下代码来实现 iOS 按钮的背景渐变色:CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame = self.btn.bounds; gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor] CGColor], (id)[[UIColor blackColor] CGColor], nil]; [self.btn.layer insertSublayer:gradient atIndex:0]; ### 回答2: iOS按钮背景渐变色可以通过以下步骤使用OC代码实现: 1. 导入渐变色所需的头文件: ```objc #import <QuartzCore/QuartzCore.h> ``` 2. 创建按钮: ```objc UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 200, 50)]; [self.view addSubview:myButton]; ``` 3. 创建渐变色图层: ```objc CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame = myButton.bounds; ``` 4. 设置渐变色图层的颜色: ```objc gradient.colors = @[(id)[UIColor redColor].CGColor, (id)[UIColor blueColor].CGColor]; ``` 5. 设置渐变色方向: ```objc // 横向渐变 gradient.startPoint = CGPointMake(0, 0.5); gradient.endPoint = CGPointMake(1, 0.5); // 纵向渐变 // gradient.startPoint = CGPointMake(0.5, 0); // gradient.endPoint = CGPointMake(0.5, 1); ``` 6. 将渐变色图层添加到按钮的背景图层中: ```objc [myButton.layer insertSublayer:gradient atIndex:0]; ``` 7. 最后,可以给按钮设置一些其他属性,如标题、字体等: ```objc [myButton setTitle:@"渐变按钮" forState:UIControlStateNormal]; [myButton.titleLabel setFont:[UIFont systemFontOfSize:17]]; [myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; ``` 通过以上步骤,即可通过OC代码实现iOS按钮的背景渐变色效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值