做出点一个控件然后他和他上下左右的4个控件一起变色。

#import "ViewController.h"
@interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
//每个方块的高度和宽度
CGFloat width=50 ;
CGFloat height=50;
//列数
int lie=5;
//一行之中的方块间隙
CGFloat Xjianxi=(self.view.frame.size.width-width*lie)/(lie +1);
//一列之中的方块间隙
CGFloat Yjianxi=30;
self.number=1;
//循环,
for (int i=0; i<45; i++) {
int hangshu=i/lie;
int lieshu=i%lie;
self.butn=[[UIButton alloc]initWithFrame:CGRectMake(Xjianxi+lieshu*(Xjianxi+width), Yjianxi+hangshu*(height+Yjianxi), width, height)];
self.butn.backgroundColor=[UIColor blueColor];
self.view.tag=100; [self.butn addTarget:self action:@selector(Discoloration:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.butn];
self.butn.tag=self.number++; } } -(void)change
{
if (self.backgroundColor==[UIColor redColor]) {
self.backgroundColor=[UIColor blueColor];
}
else{
self.backgroundColor=[UIColor redColor];
}
} -(void)Discoloration:(UIButton*)btn
{
// [[self.view viewWithTag:btn.tag] change];
// [[self.view viewWithTag:btn.tag-1] change];
// [[self.view viewWithTag:btn.tag+1] change];
// [[self.view viewWithTag:btn.tag+5] change];
// [[self.view viewWithTag:btn.tag-5]change];
self.butn=btn; if (self.butn.tag==1) {
[[self.view viewWithTag:btn.tag ] change];
[[self.view viewWithTag:btn.tag+1] change];
[[self.view viewWithTag:btn.tag+5] change];
}
else if(self.butn.tag==5)
{
[[self.view viewWithTag:btn.tag] change];
[[self.view viewWithTag:btn.tag-1] change];
[[self.view viewWithTag:btn.tag+5] change];
}
else if(self.butn.tag==41)
{
[[self.view viewWithTag:btn.tag] change];
[[self.view viewWithTag:btn.tag-5] change];
[[self.view viewWithTag:btn.tag+1] change];
}
else if(self.butn.tag==45)
{
[[self.view viewWithTag:btn.tag] change];
[[self.view viewWithTag:btn.tag-1] change];
[[self.view viewWithTag:btn.tag-5] change];
}
else if(self.butn.tag%5==1)
{
[[self.view viewWithTag:btn.tag] change];
[[self.view viewWithTag:btn.tag-5] change];
[[self.view viewWithTag:btn.tag+1] change];
[[self.view viewWithTag:btn.tag+5] change];
}
else if(self.butn.tag%5==0)
{
[[self.view viewWithTag:btn.tag] change];
[[self.view viewWithTag:btn.tag-5] change];
[[self.view viewWithTag:btn.tag-1] change];
[[self.view viewWithTag:btn.tag+5] change];
}
else if(self.butn.tag%5==1)
{
[[self.view viewWithTag:btn.tag] change];
[[self.view viewWithTag:btn.tag-5] change];
[[self.view viewWithTag:btn.tag+1] change];
[[self.view viewWithTag:btn.tag-5] change];
}
else
{
[[self.view viewWithTag:btn.tag] change];
[[self.view viewWithTag:btn.tag-1] change];
[[self.view viewWithTag:btn.tag+1] change];
[[self.view viewWithTag:btn.tag-5] change];
[[self.view viewWithTag:btn.tag+5] change];
}
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

UI控件闪灯的更多相关文章

  1. ANDROID L——Material Design详解(UI控件)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

  2. WinForm/Silverlight多线程编程中如何更新UI控件的值

    单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...

  3. 富客户端 wpf, Winform 多线程更新UI控件

    前言 在富客户端的app中,如果在主线程中运行一些长时间的任务,那么应用程序的UI就不能正常相应.因为主线程要负责消息循环,相应鼠标等事件还有展现UI. 因此我们可以开启一个线程来格外处理需要长时间的 ...

  4. UI控件(复习一下)

    如何修改控件状态• 可见,确实需要经常修改控件状态• 那如何去修改控件的状态呢?方法很简单➢ 每一个UI控件都是一个对象➢ 修改UI控件的状态,其实就是修改控件对象的属性➢ 比如修改UILabel显示 ...

  5. IOS学习资源收集--开发UI控件相关

    收集的一些本人了解过的iOS开发UI控件相关的代码资源(本文持续补充更新) 内容大纲: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 2.计时相关的自定义UILabel控件 正文 ...

  6. 《深入理解Windows Phone 8.1 UI控件编程》基于最新的Runtime框架

    <深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的 ...

  7. AppleWatch___学习笔记(二)UI布局和UI控件

    1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...

  8. (转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例

    http://2sharings.com/2014/net-4-5-task-run-parallel-for-winform-cross-multiple-threads-update-ui-dem ...

  9. Atitit. .net c# web 跟客户端winform 的ui控件结构比较

    Atitit. .net c# web 跟客户端winform 的ui控件结构比较 .net   4.5 webform Winform 命名空间 System.Web.UI.WebControls ...

随机推荐

  1. Hibernate —— Hibernate 配置文件

    1.Hibernate 配置文件主要用于配置**数据库连接**和 Hibernate 运行时所需的**各种属性**. 2.每一个 Hibernate 配置文件对应一个 Configuration 对象 ...

  2. 【原创】Kakfa utils源代码分析(一)

    Kafka.utils,顾名思义,就是一个工具套件包,里面的类封装了很多常见的功能实现——说到这里,笔者有一个感触:当初为了阅读Kafka源代码而学习了Scala语言,本以为Kafka的实现会用到很多 ...

  3. Android流量控制——列表页面

    1.最简单的模式: 设计: 1.将页码值传给服务器,让服务器返回对应的页码数据 2.数据缓存:只缓存第一页数据. 好处: 1.实现简单.无脑 坏处: 1.浪费流量,如果用户一直在等某个人发送消息的话. ...

  4. WinPhone学习笔记(五)——LongListSelector

    LongListSelector也是WinPhone的特色控件之一,最初不了解这个控件叫啥名,知道它会在"人脉"里面出现,在应用程序列表也是这个LongListSelector(如 ...

  5. 第三讲:WCF介绍(3)

    代码 https://yunpan.cn/cPns5DkGnRGNs   密码:3913   前面我们通过一个小的例子,大概了解的WCF. 这里我们补充下  EndPoint 配置  A,B,C  中 ...

  6. PHP程序员7小时学会Kotlin系列 - 第一小时 背景

    基础知识 Kotlin简单的说是Java语言的改良版本,是一种静态类型编程语言,可运行于JVM.Andoid或JavaScript环境,于2016年2月15日发布1.0正式版.Kotlin定位于一门通 ...

  7. 【算法和数据结构】_11_小算法_itoa、ftoa及字符串倒置

    [1]main.c /**************************************************** * * 把整数按照进制数转换为相应进制的字符串 *(要考虑符号),比如 ...

  8. 面试问题整理笔记系列 一 Java线程类

    1.sleep()和wait()区别 sleep() 方法:线程主动放弃CPU,使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态.典型地,sleep() ...

  9. 开始自学H5前端-第一天

    自从iOS工作丢了后 就萌生了自学这个想法 但是一直在纠结学哪一门语言好 我是计算机科学与技术专业的 其实对于我来说 学啥都算是有点基础的 但是被iOS坑惨了之后 就会不自觉的进行各个方向和前景分析 ...

  10. ViewPager的刷新、限制预加载、缓存所有

    [框架]: 公共部分:左侧菜单.TitleBar.RadioGroup(3个RadioButton:X.Y.Z) 选择X页面:指示器+ViewPager [要达成的效果]: (1)左侧选择A,进入X页 ...