专栏首页iOS知识点iOS UIButton设置高亮状态下的背景色
原创

iOS UIButton设置高亮状态下的背景色

UIButton一般分为高亮的普通两种状态,原生的方法可以设置这两种不同状态下的文字颜色,文字内容,背景图片,按钮图片。但是不能设置按钮的背景色。

方法一:通过按钮的事件来设置背景色

- (void)viewDidLoad {
    [super viewDidLoad];
     
    UIButton *button1 = [[UIButton alloc] initWithFrame:CGRectMake(50, 200, 100, 50)];
    [button1 setTitle:@"button1" forState:UIControlStateNormal];
    button1.backgroundColor = [UIColor orangeColor];
    [button1 addTarget:self action:@selector(button1BackGroundHighlighted:) forControlEvents:UIControlEventTouchDown];
    [button1 addTarget:self action:@selector(button1BackGroundNormal:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button1];
}
 
//  button1普通状态下的背景色
- (void)button1BackGroundNormal:(UIButton *)sender
{
    sender.backgroundColor = [UIColor orangeColor];
}
 
//  button1高亮状态下的背景色
- (void)button1BackGroundHighlighted:(UIButton *)sender
{
    sender.backgroundColor = [UIColor greenColor];
}

方法二:通过把颜色转换为UIImage来作为按钮不同状态下的背景图片

- (void)viewDidLoad {
    [super viewDidLoad];
     
    UIButton *button2 = [[UIButton alloc] initWithFrame:CGRectMake(170, 200, 100, 50)];
    [button2 setTitle:@"button2" forState:UIControlStateNormal];
    [button2 setBackgroundImage:[self imageWithColor:[UIColor redColor]] forState:UIControlStateNormal];
    [button2 setBackgroundImage:[self imageWithColor:[UIColor grayColor]] forState:UIControlStateHighlighted];
    [self.view addSubview:button2];
}
 
//  颜色转换为背景图片
- (UIImage *)imageWithColor:(UIColor *)color {
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS-UIButton设置高亮状态下的背景色

    UIButton一般分为高亮的普通两种状态,原生的方法可以设置这两种不同状态下的文字颜色,文字内容,背景图片,按钮图片。但是不能设置按钮的背景色。

    Lee坚武
  • iOS 在描述文件中查看BundleID等信息

    3.执行security cms -D -i XXX.mobileprovision

    Lee坚武
  • ios13 UITextField 设置leftView不响应不生效的问题

    Lee坚武
  • iOS-UIButton设置高亮状态下的背景色

    UIButton一般分为高亮的普通两种状态,原生的方法可以设置这两种不同状态下的文字颜色,文字内容,背景图片,按钮图片。但是不能设置按钮的背景色。

    Lee坚武
  • 现存最古老计算机手册重见天日,比ENIAC要先进!

    Rauscher是P-16飞机的顾问,而Boesch则有收集历史文献的本领,Z4手册正好就在他的收藏中。

    新智元
  • python+pygame游戏开发之使用Py2exe打包游戏

    最近在用python+pygame 开发游戏,写完以后在分享给朋友玩的时候遇到了很大的问题,只有搭建了环境才能运行python脚本。

    马三小伙儿
  • pygame-KidsCanCode系列jumpy-part0-使用sprite

    开发新游戏时,把上面这个模板复制一份新的,然后改改里面update/draw这二个部分即可。为了方便新同学理解"模板"的处理流程,从视频中截了二张图:

    菩提树下的杨过
  • 用Python网络爬虫来看看最近电影院都有哪些上映的电影

    受疫情的影响,很多电影院现在都倒闭关门。最近好像听说电影院要开工了,快来看一看最近有什么刚上映的电影 !

    Python进阶者
  • 【李飞飞最新演讲】斯坦福AI实验室图像与视觉理解技术进展(191PPT)

    【新智元导读】ImageNet 缔造者、斯坦福大学副教授、人工智能实验室主任李飞飞在刚刚结束的ICML2016会议发表演讲 A Quest for Comput...

    新智元
  • GATK4最佳实践-体细胞突变的检测与识别

    分析体细胞突变时,通常采用tumor_vs_nomal 的实验设计。在检测时,由于同时会检测出生殖细胞突变和体细胞突变,需要做的就是去除生殖细胞突变位点,那么剩...

    生信修炼手册

扫码关注云+社区

领取腾讯云代金券