在项目中有时会遇到有几个Button,当选中其中一个Button时,状态颜色变为选中状态,其他的为不选中状态。
再次点击选中状态的Button状态不改变(依旧是选中状态)。

针对这种情况,需要创建使用一个全局的Button属性。

@property(nonatomic,strong)UIButton *tempButton;

一般会有默认选中的Button,所以在默认的Button处写上

    _liftButton.selected = YES;_tempButton = _liftButton;

将默认的Button赋给中间变量。

-具体示例代码如下:

其实就是判断点击的Button是否为选中状态,是的话状态不改变;不是的话,把记录全局的Button选中状态改为NO,把当前的Button赋给全局Button,并且状态改为YES。

//按钮点击事件
-(void)buttonSelected:(UIButton *)sender{if (sender != _tempButton) {_tempButton.selected = NO;_tempButton.backgroundColor = [UIColor grayColor];sender.backgroundColor = [UIColor whiteColor];_tempButton = sender;}_tempButton.selected = YES;
}

​这里用颜色来表示选中与未选中的状态。

如果使用不同图片,在创建Button时就可以设置选中与未选中的图片,使用如下方法即可。
在点击事件中就不需要在改变颜色了。

[button setBackgroundImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:selectedImgName] forState:UIControlStateSelected];

【笃行】Button的选中与改变相关推荐

  1. CheckBox选中状态改变

    这里写自定义目录标题 CheckBox选中状态改变 一.背景 二.源码分析 三.总结: CheckBox选中状态改变 一.背景 分配了一个编写checkbox通用控件的任务,有一个要求是希望可以在状态 ...

  2. 扩展GridView控件(7) - 行的指定复选框选中时改变行的样式

    GridView既强大又好用.为了让它更强大.更好用,我们来写一个继承自GridView的控件. [索引页] [×××] 扩展GridView控件(7) - 行的指定复选框选中时改变行的样式 作者:w ...

  3. android输入时背景颜色,Button根据EditText输入状态改变背景颜色

    需求 Button随EditText输入状态改变颜色 有3个不同颜色状态, EditText未输入时,Button处于不可点击状态 EditText输入时,Button处于高亮状态 EditText输 ...

  4. C# tabcontrol当标签页被选中后改变颜色

    C# tabcontrol当标签页被选中后改变颜色 private TabControl tabsControl = new TabControl(); tabsControl.DrawMode = ...

  5. 关于JS点击button之灵活替换改变内容方法

    <p id="demo"> JavaScript 能改变 HTML 元素的内容. </p> <script> function myFuncti ...

  6. 选中文字改变默认颜色

    在网页中选中文字,默认为蓝底白字.这是浏览器默认的结果. 要改变也十分的简单 .p1::selection{color: #fff;background:#73BF00;}.p1::-moz-sele ...

  7. qtablewidget 选中不改变背景_C4D制作不一样的核壳结构

    在科研绘图中,三维模型图相对于二维平面图片可以展示更多的信息,尤其是在做纳米结构设计和制备时,三维模型图可以直观地表现出材料的设计思路和合成路径.比如在这篇发表于Joule杂志的高水平.高颜值.将纳米 ...

  8. python怎么改变button的颜色_python – 改变Kivy中Button的背景颜色

    我是Kivy的新手,无法指定Button的背景颜色.这是我的简单例子: # custombutton.py from kivy.app import App from kivy.uix.widget ...

  9. checkbox jq 监听_「checkbox 选中事件」jquery checkbox 选中、改变状态、change 和 click 事件 - seo实验室...

    checkbox 选中事件 jquery判断checked的三种方法: ​​​​​​​ .attr('checked); //看版本1.6+返回:"checked"或"u ...

  10. 判断checkbox是否选中并改变值

    $("#aaa").click(function(){           $.each($('input:checkbox'),function(){             i ...

最新文章

  1. java -jar 未响应_Java 方法性能监控和统计工具 MyPerf4J
  2. 独家 | 使用TensorFlow 2创建自定义损失函数
  3. [转]我们需要IQ吗?--敬以此文献给和我一样迷茫,浮躁的人,共勉!
  4. 关于c语言结构体偏移的一点思考
  5. 使用JDBCTemplate实现与Spring结合,方法公用 ——Spring配置(applicationContext.xml)
  6. 114. 二叉树展开为链表 golang
  7. linux怎么重装ssh服务器,Linux平台下安装SSH
  8. 【项目管理】项目管理计划
  9. 浏览器输入一个url会发生什么
  10. 计算机网络---ICMP、IGMP协议
  11. 基于CSRF的XSS攻击
  12. iOS学习笔记26-视频播放
  13. “华为杯”第十八届中国研究生数学建模竞赛历程及感悟
  14. kindeditor富文本编辑器下载使用
  15. 崔希凡-javaWeb-笔记day07-day09(2016年7月26日23:17:27)
  16. 蓝牙扫描startLeScan测试
  17. 基于 WeDataSphere Prophecis 与 KubeSphere 构建云原生机器学习平台
  18. 我是如何利用Python下载酷狗音乐的
  19. Leetcode 1905. Count Sub Islands
  20. Mac OS制作Windows10启动盘

热门文章

  1. javscript创建Emitter
  2. android开发软件!Android免打包多渠道统计如何实现?满满干货指导
  3. Tensorflow中的数据对象Dataset.shuffle()、repeat()、batch() 等用法
  4. Gromacs相关基础知识
  5. 五天带你学完《计算机网络》,期末考试不挂科
  6. MyBatis14 缓存
  7. exoplay切换全屏_Flutter 实现视频全屏播放逻辑及解析
  8. 解决(“settings.DATABASES is improperly configured. “django.core.exceptions.Im
  9. php 根据ip 扫描端口,域名端口扫描-在线端口检测开放检查-IP端口批量扫描在线工具...
  10. c语言十佳歌手程序,十佳歌手决赛的细则流程