IOS开发小项目—找色块游戏
1.项目代码:
@interface NextViewController ()
{
int r ;//色块层数的全局变量
int m;//后面用于tag值的变化
UIView *view;//色块
NSArray *color;//颜色库
UIImageView *baview;//作为色块的地图,也可以用UIView
UILabel *label;
}
@end
@implementation NextViewController
- (void)viewDidLoad {
// 赋初值 建立最开始的模型
[super viewDidLoad];
self.title = @"找色块";
r = 2;//初始化状态为2层
m = 1;
self.view.backgroundColor = [UIColor whiteColor];//初始颜色为白色
[self color];
[self loadData];
[self label];
}
//颜色库
-(void)color{
color = @[[UIColor colorWithRed:0.494 green:0.905 blue:0.493 alpha:1.000],[UIColor greenColor],[UIColor colorWithRed:0.000 green:0.091 blue:0.998 alpha:1.000],[UIColor cyanColor],[UIColor yellowColor],[UIColor purpleColor],[UIColor lightGrayColor],[UIColor darkGrayColor],[UIColor blackColor],[UIColor colorWithRed:0.868 green:0.336 blue:0.760 alpha:1.000],[UIColor magentaColor],[UIColor orangeColor],[UIColor brownColor]];}
//--------------------创建色块-------------------
-(void)loadData{
int index = arc4random()%(r*r)+1;
int ii = arc4random()%color.count;
baview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 120, CGRectGetWidth(self.view.frame), CGRectGetWidth(self.view.frame))];
baview.backgroundColor = [UIColor whiteColor];
// 使用UIImageView必须要使用下面语句可以使用手势
baview.userInteractionEnabled = YES;
[self.view addSubview: baview];
for (int n =0; n<r; n++)
{
for (int i = 0; i<r; i++)
{
CGFloat k = CGRectGetWidth(self.view.frame);
view = [[UIView alloc]initWithFrame:CGRectMake(20+(k-40)/r*i, 20+(k-40)/r*n, (k-60)/r, (k-60)/r)];
view.layer.cornerRadius = 10;//设置拐角
view.layer.masksToBounds = YES;
view.backgroundColor = color[ii];//随机颜色
view.tag = r*i+n+1;
//任意选择一个模块添加点击手势(通过tag值随机选择)
if (index == view.tag)
{
UITapGestureRecognizer *tapge = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tanp:)];
tapge.numberOfTapsRequired = 1;
view.alpha = 0.5;
// 添加手势
[view addGestureRecognizer:tapge];
}
[baview addSubview:view];
}
}
}
-(void)tanp :(UITapGestureRecognizer*)sender{
r++;
m++;
[self loadData];//点击后 重新更新色块
[self text];//最下面文字显示
[self label];//最上端文字显示
}
//文字显示模块,判断达到了多少 出现什么文字
-(void)text{
if (r>5&&r<7) {
UILabel *llabel = [[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width-150-100, self.view.frame.size.height/2+150, 150, 50)];
llabel.tag = 100;
llabel.textAlignment = YES;
llabel.text = @"你的视力很好哦!";
[self.view addSubview:llabel];
}
if (r>7&&r<11) {
UILabel *llabel = (UILabel*)[self.view viewWithTag:100];
llabel.hidden = YES;
}
if (r>20&&r<23) {
UILabel *llabel = [[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width-150-100, self.view.frame.size.height/2+150, 150, 50)];
llabel.tag = 100;
llabel.textAlignment = YES;
llabel.text = @"你真牛!!!";
[self.view addSubview:llabel];
}
if (r>35&&r<40) {
UILabel *llabel = [[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width-150-100, self.view.frame.size.height/2+150, 150, 50)];
llabel.tag = 100;
llabel.textAlignment = YES;
llabel.text = @"大神,顶礼膜拜!!!!!!";
[self.view addSubview:llabel];
}
if (r>40) {
UILabel *llabel = (UILabel*)[self.view viewWithTag:100];
llabel.hidden = YES;
}
}
//数字块,显示到了第几层
-(void)label{
label = [[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width-150-100, self.view.frame.size.height/2-250, 150, 50)];
label = [UIColor whiteColor];
label.tag = m+500;
label.textAlignment = YES;
NSString *te = [NSString stringWithFormat:@"现在是第%d层",r-1];
label.text = te;
label.textColor = [UIColor blackColor];
[self.view addSubview:label];
[self remove];
}
//移除出现过的视图,以免发生重叠
-(void)remove{
UITextField *textf = (UITextField *)[self.view viewWithTag:label.tag - 1 ];
[textf removeFromSuperview];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
2.效果


IOS开发小项目—找色块游戏的更多相关文章
- iOS开发小技巧 - runtime适配字体
iOS开发小技巧 - runtime适配字体 版权声明:本文为博主原创文章,未经博主允许不得转载,有问题可联系博主Email: liuyongjiesail@icloud.com 一个iOS开发项目无 ...
- iOS开发小技巧 - UILabel添加中划线
iOS开发小技巧 遇到的问题: 给Label添加中划线,然后并没有效果 NSString *str = [NSString stringWithFormat:@"合计金额 ¥%.2f&quo ...
- 李洪强iOS开发之 - 项目架构
李洪强iOS开发之 - 项目架构 01 - 在Appdelegate中设置跟控制器 //导入头文件
- iOS开发-项目的完整重命名方法,图文教程。
前言:在IOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦.直接改项目名吧,XCODE又不会帮你改所有的名字.总是有很多文件.文件夹或者是项目设置的项.而且都是不能随便改的,有时候改着改着,编译 ...
- iOS开发--完整项目
完整项目 Phonetic Swift 写的一个 iOS 版的 Phonetic Contacts,功能很多,其中昵称功能非常实用,已在 GitHub 开源并上架 App Store v2ex – v ...
- iOS开发小技巧 -- tableView-section圆角边框解决方案
[iOS开发]tableView-section圆角边框解决方案 tableView圆角边框解决方案 iOS 7之前,图下圆角边框很容易设置 iOS 7之后,tableviewcell的风格不再是圆角 ...
- ios开发小技巧之提示音播放与震动
在ios开发中,有时候我们需要频繁播放某种提示声音,比如微博刷新提示音.QQ消息提示音等,对于这些短小且需要频繁播放的音频,最好将其加入到系统声音(system sound)里. 注意: 需要播放的音 ...
- iOS学习——iOS开发小知识点集合
在iOS学习和开发过程中,经常会遇到一些很小的知识点和问题,一两句话就可以解释清楚了,这样的知识点写一篇随笔又没有必要,但是又想mark一下,以备不时之需,所以就有了本文.后面遇到一些小的知识点会不断 ...
- 在IOS开发中,项目的目录结构如何搭建?
网上有很多关于IOS开发的学习资料.然而却很少有关于设计一个项目时,如何设计其目录结构?这对于自学IOS的程序猿们,无疑有诸多不利.接下来,我就简单的谈下真正在公司中,项目的目录结构如何搭建: 以上为 ...
随机推荐
- JS中offsetLeft,Left,clientLeft的区别(纯转贴)
假设 obj 为某个 HTML 控件. obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素. obj.offsetLeft ...
- 在Linux上使用web2py_uwsgi_nginx搭建web服务器
本文介绍在Linux使用Python+Nginx+web2py+uWSGI搭建一个web服务器的过程. Python 2.7.11 解压安装包 tar -zxvf Python-2.7.11.tgz ...
- C++ STL算法系列 unique
类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素. 该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值 ...
- 第四部分:python性能技巧
4.1 查询操作为主时,选择字典结构比list结构效率更高 4.2 取list的交集.并集.差集时,可借助set数据结构如listintersection = list(set(lista)& ...
- Linux下解决“shutdown: command not found"问题
今天关机时,使用shutdown来执行此操作,但出现了一个"bash:shutdown:command not found"错误提示.这让我很困惑,这个命令在系统中是肯定存在的,但 ...
- 增加mvc:resources后访问不了注解配置的controller的问题
刚开始没有配置mvc:resourcescontroller能够正确访问,但是由于web.xml使用/拦截了所有的请求,所以静态资源访问不上增加mvc:resources之后,静态资源是能访问上了,但 ...
- JS初学之-选项卡(常见)
思路:鼠标滑过的效果直接用a:hover实现的,比较简便,缺点是在IE下不兼容. 为每一个Li添加点击事件,将每一个li用自定义属性的方法与div相匹配,重点是在点击事件内,要先遍历每一个div, ...
- POJ-3162 Walking Race (求树上两点之间最大距离)
题目大意:给一棵树,对于所有的点,找出距它最远点的距离,然后将这些距离排成一列,找出最长的一个区间满足:其中的最大值减去最小值不大于m. 题目分析:两次dfs找出距每个节点的最远距离,然后可以通过维护 ...
- Python学习(5)——内置函数
常用字符串内置函数 1)str.count() //返回该字符串中某个子串出现的次数 2)str.find() //返回某个子串出现在该字符串的起始位置 3)str.lower() //将该字符串全部 ...
- 查找字符串的 KMP 算法
查找字符串是我们平常编程过程中经常遇到的,现在介绍一种查找字符串算法,增加程序的执行速度. 通常我们是这么写的: /* content: search a string in a othor stri ...