UI控件闪灯
做出点一个控件然后他和他上下左右的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控件闪灯的更多相关文章
- ANDROID L——Material Design详解(UI控件)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...
- WinForm/Silverlight多线程编程中如何更新UI控件的值
单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...
- 富客户端 wpf, Winform 多线程更新UI控件
前言 在富客户端的app中,如果在主线程中运行一些长时间的任务,那么应用程序的UI就不能正常相应.因为主线程要负责消息循环,相应鼠标等事件还有展现UI. 因此我们可以开启一个线程来格外处理需要长时间的 ...
- UI控件(复习一下)
如何修改控件状态• 可见,确实需要经常修改控件状态• 那如何去修改控件的状态呢?方法很简单➢ 每一个UI控件都是一个对象➢ 修改UI控件的状态,其实就是修改控件对象的属性➢ 比如修改UILabel显示 ...
- IOS学习资源收集--开发UI控件相关
收集的一些本人了解过的iOS开发UI控件相关的代码资源(本文持续补充更新) 内容大纲: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 2.计时相关的自定义UILabel控件 正文 ...
- 《深入理解Windows Phone 8.1 UI控件编程》基于最新的Runtime框架
<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的 ...
- AppleWatch___学习笔记(二)UI布局和UI控件
1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...
- (转).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 ...
- Atitit. .net c# web 跟客户端winform 的ui控件结构比较
Atitit. .net c# web 跟客户端winform 的ui控件结构比较 .net 4.5 webform Winform 命名空间 System.Web.UI.WebControls ...
随机推荐
- 【转】NoSQL初探之人人都爱Redis:(1)Redis简介与简单安装
一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经 ...
- .Net语言 APP开发平台——Smobiler学习日志:如何在webview中加载网页
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的“Smobiler Components” ...
- Needham-Schroeder加密算法小结
自己整理了下关于Needham-Schroeder加密算法的相关知识,如下图示.
- jquery属性选择器(同时匹配多个条件)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [工具] GIF 动画每帧合并到一张 PNG
功能:将 GIF 动画每帧合并到一张 PNG 需求:配合 ImageMagick 图像处理软件. 下载:[工具]Gif2Png_Aone_1.0.0.zip 使用方法: 请到 ImageMagick ...
- 数据查询语言DQL 与 内置函数(聚合函数)
数据查询语言DQL 从表中获取符合条件的数据 select select*from表的名字 查询表所有的数据.(select跟from必须一块用 成对出现的) * 表示所有字段,可以换成想要查询的 ...
- 微信公众平台关于fakeid和openid的解析
今天在开发项目的时候遇到了个问题: 搞不清楚微信官方接口的fromusername(openid)和公众平台内每个粉丝所拥有的fakeid,于是在测试号中开始了对以上两项的研究,结果如下: 1.对 ...
- GJM:用C#实现网络爬虫(二) [转载]
上一篇<用C#实现网络爬虫(一)>我们实现了网络通信的部分,接下来继续讨论爬虫的实现 3. 保存页面文件 这一部分可简单可复杂,如果只要简单地把HTML代码全部保存下来的话,直接存文件就行 ...
- 项目中应用eventbus解决的问题
在项目开发过程中,往往有些功能表面看起来简单,但实际开发的结果非常复杂,仔细分析下原因发现很多都是因为附加了许多的额外功能. 真的简单吗? 比如我们对一个电商平台的商品数据做修改的功能来讲,其实非常简 ...
- java集合-LinkedList
一.概述 LinkedList 与 ArrayList 一样实现 List 接口,只是 ArrayList 是 List 接口的大小可变数组的实现,LinkedList 是 List 接口链表的实现. ...