循环btn上面的视图
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
UIButton * btn = [self createBtn:YES andCGRectMake:CGRectMake(, , , )];
[btn setTitle:@"长度" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];
btn.backgroundColor = [UIColor cyanColor];
btn.tag = ;
[self.view addSubview:btn];
UIButton * btn1 = [self createBtn:YES andCGRectMake:CGRectMake(, , , )];
btn1.tag = ;
btn1.selected = NO;
[btn1 setTitle:@"长度长度" forState:UIControlStateNormal];
//循环btn btn的背景图片不能更改
/*
UIImageView * image = [[UIImageView alloc]init];
image.backgroundColor = [UIColor orangeColor];
UIImageView * image1 = [[UIImageView alloc]init];
image1.backgroundColor = [UIColor yellowColor];
[btn1 setImage:image.image forState:UIControlStateNormal];
[btn1 setImage:image1.image forState:UIControlStateSelected];
*/
[btn1 setTitleColor:[UIColor blackColor] forState:UIControlStateSelected];
[btn1 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];
btn1.backgroundColor = [UIColor cyanColor];
[self.view addSubview:btn1];
}
-(void)pressBtn:(UIButton*)sender{
//循环btn btn的背景图片不能更改
if (sender.tag == ) {
for (id obj in sender.subviews) {
if ([obj isKindOfClass:[UIImageView class]])
{
if (sender.selected) {
UIImageView* image = (UIImageView*)obj;
image.backgroundColor = [UIColor redColor];
sender.selected = NO;
}
else{
UIImageView* image = (UIImageView*)obj;
image.backgroundColor = [UIColor grayColor];
sender.selected = YES;
}
}
}
}
else{
for (id obj in sender.subviews) {
if ([obj isKindOfClass:[UIImageView class]])
{
if (sender.selected) {
UIImageView* image = (UIImageView*)obj;
image.backgroundColor = [UIColor redColor];
sender.selected = NO;
}
else{
UIImageView* image = (UIImageView*)obj;
image.backgroundColor = [UIColor grayColor];
sender.selected = YES;
}
}
}
}
}
-(UIButton*)createBtn:(BOOL)yes andCGRectMake:(CGRect)frame{
UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = frame;
UIImageView *image = [[UIImageView alloc]initWithFrame:CGRectMake(btn.titleLabel.frame.size.width/+btn.frame.size.width/+, , , )];
image.backgroundColor = [UIColor redColor];
[btn addSubview:image];
return btn;
}


循环btn上面的视图的更多相关文章
- 给View添加手势,防止点击View上其他视图触发点击效果
在开发过程中,我们可能会遇到这个问题. 当我们给一个view添加了手势,但是我们又不想点击view上面的视图也触发手势.如下图: 我们在红色view上添加了手势,但是又不想点击黄色view也触发.其实 ...
- iOS for循环创建button,button的宽度依据上面的文字来自适应.
近期须要使用一个标签页,寻思自己写一个demo. 标签的大小依据上面的文字来自适应大小,须要依据后台返回的数据自己主动换行.没有加入 NSArray *arr = @[@"无知", ...
- n=n+1 放在print(s)的上面的影响 (2) n=n=+1在前面,则不满足前面<100条件时候,才跳出while的循环,这时候while循环结束, 到了外面的下一步-->print()
1+2+3+....+100= ? n=1 s = 0 while n < =100: s = s+n n= n+1 # n=n+1 在print(s)上面的情况 print(s)
- jq源码解析之绑在$,jQuery上面的方法
1.当我们用$符号直接调用的方法.在jQuery内部是如何封装的呢?有没有好奇心? // jQuery.extend 的方法 是绑定在 $ 上面的. jQuery.extend( { //expand ...
- 如何批量清除128组节点db上面的过期的binlog,释放磁盘空间。(转)
如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了.大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binl ...
- 清理:db上面的过期的binlog,释放磁盘空间。 (转)
如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了.大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binl ...
- k-develop 在ros上面的应用
sudo apt-get install kdevelop 根据wiki上面的ros 章节中,关于kdevelop的介绍,配置好环境即可. 导入工程时,选中src/src下面的章节,不过,需要注意去掉 ...
- 获取Linux进程运行在哪个CPU内核上面的方法
首先,当某些时候,在一段程序或者借助第三方软件进行程序协助的时候,在性能的优化,以及程序bug的排除上面,可能会想知道该程序执行的进程被调度到了哪一个CPU内核进行工作,从而可以推断是否是受限于硬件还 ...
- IQKeyboardManager在某个页面取消键盘上面的Toolbar
使用IQKeyboardManager的时候,如果想在某个页面取消键盘上面的Toolbar,请使用如下方法,按控制器去操作 // 取消IQKeyboardManager Toolbar [[IQKey ...
随机推荐
- AndroidDev站点推荐-zz
Android-Dev-Bookmarks 项目目前可以生成书签文件导入到浏览器中了,ADB 站点上的内容也是一样的,方便在线浏览.现在内容更新开始按期发布同时也会有个简短的介绍,内容逐渐增多比较难直 ...
- poj 2236 并查集
并查集水题 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring& ...
- Python实现的粒子群优化算法
01.from numpy import array 02.from random import random 03.from math import sin, sqrt 04. 05.iter_ma ...
- jmeter之调度器配置
Jmeter的线程组设置里有一个调配器设置,用于设置该线程组下脚本执行的开始时间.结束时间.持续时间及启动延迟时间.当需要半夜执行性能测试时会用到这个功能. ps:设置调度器配置,需要将前面的循环次数 ...
- Servlet常见错误及解决方法
常见错误及解决方法 1. 404产生的原因为Web服务器(容器)根据请求地址找不到对应资源,以下情况都会出现404的错误提示: 输入的地址有误(应用名大小写不正确,名称拼写不正确) 在web.xml文 ...
- BZOJ2739 : 最远点
把环倍长,设$w(i,j)$表示对于$i$,决策$j$的价值,如果$j$在$[i,i+n]$,那么$w(i,j)=dis(i,j)$,否则$w(i,j)=-dis(i,j)$. 则$w$满足四边形不等 ...
- BZOJ3711 : [PA2014]Druzyny
设f[i]为[1,i]分组的最优解,则 f[i]=max(f[j]+1),max(c[j+1],c[j+2],...,c[i-1],c[i])<=i-j<=min(d[j+1],d[j+2 ...
- [Unity2D]GameObject游戏对象的灵活运用
Unity2D的游戏可以说是由一堆GameObject构成的,GameObject的使用非常灵活,不仅仅是给单个精灵使用,你可以发挥你一切的想象力来利用它来解决一些实际上的问题.比如: 1.给一个精灵 ...
- Google Code Jam 2009 Qualification Round Problem C. Welcome to Code Jam
本题的 Large dataset 本人尚未解决. https://code.google.com/codejam/contest/90101/dashboard#s=p2 Problem So yo ...
- java 枚举类型分析
最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enum ColorSelect { RED_BAGE = 0, GREEN_BAGE, ...