//简单制作一个关灯游戏

//点击某一个灯,它,包括它四周的灯一起变化,关了的亮,亮的关

//建一个分类,它继承与UIView

#import <UIKit/UIKit.h>

//声明一个方法

@interface UIView (Change)

-(void)change;

@end

//实现这个方法

#import "UIView+Change.h"

@implementation UIView (Change)

-(void)change

{

//红的变黑,黑的变红

if (self.backgroundColor==[UIColor redColor]) {

self.backgroundColor=[UIColor blackColor];

}

else

{

self.backgroundColor=[UIColor redColor];

}

}

@end

#import <UIKit/UIKit.h>

#import "UIView+Change.h"

@interface ViewController : UIViewController

//定义一个按钮控件的属性

@property (strong,nonatomic) UIButton *button;

//声明一个判断的方法

-(void)chose:(UIButton *)button;

@end

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//循环产生按钮视图 j=5,代表横排五个,i=9 代表竖排9个

for (int i=1; i<=9; i++)

{

for (int j=1; j<=5; j++)

{

//Button的初始化

self.button = [UIButton buttonWithType:UIButtonTypeCustom];

self.button=[[UIButton alloc]initWithFrame:CGRectMake(19*j+(j-1)*60, 19.6*i+(i-1)*60, 60, 60)];

//将Button创建为圆角矩形

[self.button.layer setCornerRadius:10.0];

//给Button上初始颜色为红色,当成灯亮

self.button.backgroundColor=[UIColor redColor];

//给创建的每一个Button按钮视图赋一个初始tag值

self.button.tag=(i-1)*5+j;

self.button.selected=YES;

[self.view addSubview:self.button];

//当触发事件UIControlEventTouchDown发生时,调用方法chose:

[self.button addTarget:self action:@selector(chose:) forControlEvents:UIControlEventTouchDown];

}

}

}

//判断方法

-(void)chose:(UIButton *)button

{

self.button=button;

//将Button的tag值转化为int类型赋给num

int num=(int)self.button.tag;

//第num个Button变色

[[self.view viewWithTag:num] change];

//判断第num个Button周围有没有其他的Button,有调用change方法,变色

if ((num-1)>0&&((num%5)!=1)) {

[[self.view viewWithTag:(num-1)] change];

}

if ((num-5)>0) {

[[self.view viewWithTag:(num-5)] change];

}

if ((num+1)<=45&&((num%5)!=0)) {

[[self.view viewWithTag:(num+1)] change];

}

if ((num+5)<=45) {

[[self.view viewWithTag:(num+5)] change];

}

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

转载于:https://www.cnblogs.com/Always-LuoHan/p/5263886.html

UIButton 的简单运用相关推荐

  1. Mac之button的使用Show+NSMenu+next+to+NSButton+in+Swift+OSX

    http://www.itdaan.com/keywords/Show+NSMenu+next+to+NSButton+in+Swift+OSX.html http://www.itdaan.com/ ...

  2. 简单的UIButton按钮动画效果iOS源码

    这个是简单的UIButton按钮动画效果案例,源码,简单的UIButton按钮动画,可以自定义button属性. 效果图: <ignore_js_op> 使用方法: 使用时把ButtonA ...

  3. 【iOS开发-8】UIButton类型属性简单归纳以及自定义按钮的设置

    (1)UIButton类继承自UIControl,而UIControl继承自UIView,因为UIView就是个矩形区域,所以UIButton实例化的对象其实都是一个矩形,虽然有各种圆角.增加联系人. ...

  4. Cocos2d-x V3.2+Cocos Studio1.6 实现一个简单的uibutton点击功能

    首先我们打开Cocos Studio1.6,选择UIEditor,进去后我们发现有很多的示例,我们就悬着一个叫demologin的示例 选择好后我们发现如下图,简单介绍了下功能 这里我们选中那个log ...

  5. iOS支付宝(Alipay)接入详细流程,比微信支付更简单,项目实战中的问题分析

    最近在项目中接入了微信支付和支付宝支付,总的来说没有那么坑,很多人都说文档不全什么的,确实没有面面 俱到,但是认真一步一步测试下还是妥妥的,再配合懂得后台,效率也是很高的,看了这篇文章,你也只要几分钟 ...

  6. UIButton文字居左显示

    今天我们来讲如何让UIButton文字居左显示?我们都应该写过让UILabel的text居左显示.代码也非常简单. UILabel文字居左显示 实现文字居左显示代码如下: UILabel *label ...

  7. UIButton 的edgeInsets研究

    UIButton内有两个控件titleLabel和imageView,可以用来显示一个文本和图片,这里的图片区别于背景图片.给UIButton设置了title和image后,它们会图片在左边,文本在图 ...

  8. UIButton状态探索和自定义

    原文:UIButton 状态新解 – 网易云音乐大前端 控件状态 作为 iOS 开发者,一提到控件,就不得不提到 UIButton,它做为 iOS 系统最常用的响应用户点击操作的控件,为我们提供了相当 ...

  9. 设置UIButton上面是image,下面是title

    此处写了一个UIButton的子类,添加了一个设置titleEdgeInsets和imageEdgeInsets 的方法,代码如下: 1 #import <UIKit/UIKit.h> 2 ...

最新文章

  1. 5G 标准的走向,为何越来越不同寻常?
  2. BASH SHELL 脚本基础
  3. Linux命令——expr
  4. VMware使用方法
  5. 140个Google面试问题
  6. 面试问烂的 MySQL 四种隔离级别,看完吊打面试官!
  7. Linux中shell的介绍
  8. 复现经典:《统计学习方法》​第17章 潜在语义分析
  9. zblog php 侧边栏样式,ZBlogPHP免费主题Blogs如何修改侧边栏搜索框样式?
  10. 粒度过粗_这些书帮助我度过了第一次成为技术主管的经历
  11. 国内外研究主页集合:计算机视觉-机器学习-模式识别
  12. Zabbix二次开发_03api列表
  13. 从零开始学架构3 - 高可用篇
  14. python基础数据类型语法
  15. java easyui样式_【Java框架型项目从入门到装逼】第八节 - 用EasyUI绘制主界面
  16. Day3-Spring的事务管理、Spring框架的JDBC模板
  17. java ts文件 播放_前端如何播放m3u8格式的视频
  18. 通过Java 画一个太极图
  19. 业务流程图是什么?怎么画?
  20. python录入数据,python处理写入数据教学教程

热门文章

  1. CSS中id选择器和class选择器
  2. 【例题+习题】【数值计算方法复习】【湘潭大学】(五)
  3. Linux内核驱动模块示例--Helloword及Makefile
  4. Photoshop CS6将多张图片合成GIF动态图或视频,并将其保存导出
  5. Cocos2d-x 2 0 4 小心隐藏的retain
  6. JAVA SAX解析XML文档
  7. JAVA正则表达式分析爬虫数据
  8. 程序员都在用的IDEA插件(不断更新)
  9. 【实践驱动开发3-006】TI WL1835MODCOM8 在android的移植 - SDIO wifi驱动的注册步骤
  10. python鼠标移动事件_给turtle屏幕增加鼠标移动事件核心代码