开发项目时,有很多场景需要用到按钮单选效果,例如充值页面,选择标签页面等,具体实现代码如下:

1,创建

-(UIView *)headerView
{
CGFloat width = (KscreenW -*)/; if (!_headerView) {
_headerView = [[UIView alloc]initWithFrame:CGRectMake(, , KscreenW, )];
for (int i = ; i < ; i ++) {
int x = + i % * width + i % * ;
int y = i / * + i / * ; UIButton *button = [GlobalUI createButtonWithImg:nil title:[NSString stringWithFormat:@"%d",i] titleColor:[UIColor grayColor]];
button.frame = CGRectMake(x, y, width, );
button.tag = i + ;
button.backgroundColor = BackgroundColor;
button.clipsToBounds = YES;
button.layer.cornerRadius = ;
[button addTarget:self action:@selector(selectedAction:) forControlEvents:UIControlEventTouchUpInside];
[_headerView addSubview:button]; if (i == ) { self.tmpBtn = button;
self.tmpBtn.backgroundColor = RGB(, , );
[self.tmpBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
}
}
}
return _headerView;
}

2,具体实现方法:

-(void)selectedAction:(UIButton *)sender
{
if (self.tmpBtn == sender) {
sender.backgroundColor = RGB(, , );
[sender setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
}else{
sender.backgroundColor = RGB(, , );
[sender setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
_tmpBtn.backgroundColor = BackgroundColor;
[_tmpBtn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
} self.tmpBtn = sender;
}

3,主要是声明的_tmpBtn

@property(strong, nonatomic) UIButton *tmpBtn;

声明一个按钮的实例,在循环创建的时候,指定第0个按钮的选中效果,用_tmpBtn来进行标记,并指定选中的效果,譬如背景色,字体颜色等,

然后在点击事件里面,根据传入的sender的变量来进行匹配,如果是选中的实例按钮,就设置选中样式,反之,把其他的非选中的按钮和已经选中过的按钮进行设置,最后重新赋值下,即可!可能说的有的肤浅,不过大体上就是这麽个意思,见谅!效果图如下:

仅做记录!

ios开发之--多个按钮单选效果的更多相关文章

  1. IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例

    IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add bu ...

  2. iOS开发之虾米音乐频道选择切换效果分析与实现

    今天博客的内容比较简单,就是看一下虾米音乐首页中频道选择的一个动画效果的实现.之前用mask写过另外一种Tab切换的一种效果,网易云音乐里边的一种Tab切换效果,详情请移步于"视错觉:从一个 ...

  3. iOS开发——图片轮播图+单选选项

    由于公司开发需要,需要滚动每道评测题, 并且一道评测题单项选择,按钮和文字都可点击选中 (单选比多选复杂一点,但是原理差不多) 1.当初任务紧,代码也没有优化,仅供思路参考,先放几张图 2.代码部分 ...

  4. iOS开发——实用技术OC篇&简单抽屉效果的实现

    简单抽屉效果的实现 就目前大部分App来说基本上都有关于抽屉效果的实现,比如QQ/微信等.所以,今天我们就来简单的实现一下.当然如果你想你的效果更好或者是封装成一个到哪里都能用的工具类,那就还需要下一 ...

  5. iOS开发——动画篇Swift篇&动画效果的实现

    Swift - 动画效果的实现   在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimation ...

  6. iOS开发小技巧--修改按钮内部图片和文字之间的间距(xib)

    调整按钮的Edge属性,选择调整图片的Edge还是label的Edge,如图:

  7. ios开发之简单实现loading动画效果

    最近有朋友问我类似微信语音播放的喇叭动画和界面图片加载loading界面是怎样实现的,是不是就是一个gif图片呢!我的回答当然是否定了,当然不排除也有人用gif图片啊!下面我就来罗列三种实现loadi ...

  8. radio按钮单选效果

    必须有name,并且是同一值,判断效果可用value值确定

  9. iOS开发小技巧--取消按钮的选中状态

    首先要自定义按钮,并且实现如下方法,对,就是这么实现!!

随机推荐

  1. PySpider问题记录http599

    问题简述 背景说明: python版本 3.5.2 操作流程: 1.执行pyspider安装: pip install pyspider 2.运行pyspider pyspider all 3.打开浏 ...

  2. R语言入门 一些基本的操作

    1 R的下载.安转 R有很多的版本,支持目前主流的操作系统MAC.Linux和WINDOWS系列.因为我个人是在WINDOWS下用R的,所以在这里将只介绍WINDOWS下R的下载&安装. 下载 ...

  3. Loadrunner 26377错误

    26377错误的成因很多,总结最直接的结果就是No match found for the requested parameter "XXXXX".意思就是没有找到关联变量匹配的值 ...

  4. USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写

    在之前的博客中已经讲过,驱动程序最核心的两个文件,一个是xxx.sys文件,一个是xxx.inf文件,主机是寻找xxx.inf文件. 在下面的文件中有相关关于USB驱动的说明.对于用户来说,xxx.s ...

  5. Ubuntu 安装软件方法

    Ubuntu软件安装有几种方式,常用的是deb包的安装方式,deb是debian系列的Linux包管理方式,Ubuntu软件安装属于debian的派生,也默认支持这种软件安装方式,当下载到一个deb格 ...

  6. tensorflow prelu的实现细节

    tensorflow prelu的实现细节 output = tf.nn.leaky_relu(input, alpha=tf_gamma_data,name=name) #tf.nn.leaky_r ...

  7. SpringBoot系列二:搭建自己的第一个SpringBoot程序

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 一.根据官网手工搭建(http://projects.spring.io/spring-boot/#quick-start) 1 ...

  8. tpshop添加后台菜单

    目前在后台公用函数文件function.php中getAllMenu方法里添加, 格式如下 array( 'system' => array('name'=>'系统设置','icon'=& ...

  9. unity-----------------------使用BuildAssetBundle打包

      我发现很多美工兄弟都爱问程序Unity3d为什么总丢材质? 我不排除U3d有BUG的情况下会丢材质?但是其实很多时候是人为操作而引起的. 1.不保存就在上传 这个操作太恐怖了,切记!!在 U3D里 ...

  10. C# 实现写入文本文件内容功能

    private void write_txt(string str1, string str2, string str3) { System.DateTime currentTime = System ...