做出点一个控件然后他和他上下左右的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. 做一个会PS切图的前端开发

    系列链接 做一个会使用PS的前端开发 做一个会PS切图的前端开发 切图方法分类 PhotoShop从CS版本演变到现在的CC版本,切图功能发生了比较大的变化,我们可以把PhotoShop CS版本时的 ...

  2. 音频文件解析(二):WAV格式文件波形绘制

    解析WAV头部信息后,接下来就可以根据相关参数和DATA块数据绘制波形. 1.重新编码(转换为8bits,单声道数据) Public Function GetFormatData(ByVal pDat ...

  3. Clipboard.js实现复制内容到剪切板

    <script type="text/javascript"> var clipboard1 = new Clipboard('.bt01'); clipboard1. ...

  4. ASP.NET MVC系列:控制器的Edit方法

    在前面我们已经介绍了如何创建控制器.视图和数据模型,运行之前的项目并打开Movies主页,将鼠标悬停在“编辑”菜单上,你会看到浏览器右下角显示了“编辑”链接的地址

  5. C#生成验证码

    生成验证码的类: using System; using System.Collections.Generic; using System.Drawing; using System.Text; na ...

  6. 百度地图API实现地图定位

    1.引用JS: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0& ...

  7. Tigase XMPP Server的安装

    Tigase和OpenFire都是基于XMPP(Extensible Messaging and Presence Protocol, 可扩展通讯和表示协议)的,主要功能是实现消息的即时通信.Goog ...

  8. 回文字算法(java版本)

    package com.gdh.backtext;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry; p ...

  9. [小北De编程手记] : Lesson 01 玩转 xUnit.Net 之 概述

    谈到单元测试,任何一个开发或是测试人员都不会觉得陌生.我想大多数的同学也都是接触过各种单元测试框架.关于单元测试的重要性,应该不会有太多的质疑.这个系列,我向大家介绍一下xUnit.Net的使用.就让 ...

  10. 项目中应用eventbus解决的问题

    在项目开发过程中,往往有些功能表面看起来简单,但实际开发的结果非常复杂,仔细分析下原因发现很多都是因为附加了许多的额外功能. 真的简单吗? 比如我们对一个电商平台的商品数据做修改的功能来讲,其实非常简 ...