基于oc的不完整对对碰

//

//  ViewController.m

//  对对碰

//

//  Created by 杨晓鸣 on 16/9/19.

//  Copyright 2016年 杨晓鸣. All rights reserved.

//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

NSMutableArray* arrStr = [[NSMutableArray alloc]init];

for (int k = 0; k<18; k++) {

int random = arc4random()%7+1;

NSString* strName = [NSString stringWithFormat:@"%d",random];

[arrStr addObject:strName];

[arrStr addObject:strName];

}

//循环创建36个按钮

for (int i = 0; i<6; i++) {

for (int j = 0; j<6; j++)

{

UIButton* btn = [UIButton buttonWithType:UIButtonTypeCustom];

[UIView beginAnimations:nil context:nil];

btn.frame = CGRectMake(160, 160, 50, 50);

[UIView setAnimationDuration:2];

btn.frame = CGRectMake(10+50*j, 40+50*i, 50, 50);

[UIView commitAnimations];

//产生随机图片

int indexramdom = arc4random() % arrStr.count;

//从图像数组中取出文件名

NSString* strImage = arrStr[indexramdom];

NSInteger tag = [strImage integerValue];

[arrStr removeObjectAtIndex:indexramdom];

UIImage* image = [UIImage imageNamed:strImage];

[btn setImage:image forState:UIControlStateNormal];

[btn addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:btn];

//将按钮的标志位赋值

btn.tag = tag;

}

}

}

-(void) pressBtn:(UIButton*) btn

{

//创建一个静态变量 保存第一次按下的按钮

static UIButton* btnFirst = nil;

if (btnFirst == nil) {

btnFirst = btn;

//锁定第一个按钮

btnFirst.enabled = NO;

}

else{

//两个图片相同

if (btnFirst.tag == btn.tag) {

btnFirst.hidden = YES;

btn.hidden = YES;

btnFirst = nil;

}

//按钮图片不相同

else{

btnFirst.enabled = YES;

btnFirst = nil;

}

}

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

时间: 2024-11-03 22:47:05

基于oc的不完整对对碰的相关文章

iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App 标签选择器--LeeTagView CSSegmentedControl常用的分段选择器,简单易用! 仿微信左滑删除 IOS左滑返回 输入框 iOS 基于PhotoKit框架的自定义相册 JHDraw - 画线,画虚线,画五角星,画矩形,画虚线矩形 标度尺 对对碰小游戏 iOS优质博客 iOS无痕埋点方案分享探究 前言当前互联网行业的竞争已经是非常激烈了, "功能驱动"的时代已经过去了, 现在更加注重软件的细节, 以及用户的体验问题.

穿越古代公的示时额间对对碰

 http://weheartit.com/huizhanmen/collections/82176291-2015-01-14 http://weheartit.com/yaxianchao/collections/82176296-2015-01-14 http://weheartit.com/gaishanjiang/collections/82176298-2015-01-14 http://weheartit.com/kangpocuan/collections/82176297-

基于开源项目搭建完整RTMP视频直播(基础入门)

利用nginx搭建RTMP视频点播.直播.HLS服务器 http://blog.csdn.net/kingroc/article/details/50839994 http://www.jianshu.com/p/099c2c875524  如何开发出一款仿映客直播APP项目实践篇 -[采集篇 ]

iOS开发——网络编程OC篇&amp;总结

网络开发总结 一.一个HTTP请求的基本要素 1.请求URL:客户端通过哪个路径找到服务器 2.请求参数:客户端发送给服务器的数据 * 比如登录时需要发送的用户名和密码 3.返回结果:服务器返回给客户端的数据 * 一般是JSON数据或者XML数据 二.基本的HTTP请求的步骤(移动客户端)1.拼接"请求URL" + "?" + "请求参数" * 请求参数的格式:参数名=参数值 * 多个请求参数之间用&隔开:参数名1=参数值1&参数

OC运行时编程指南

一.介绍 OC这个语言尽可能的将一些决定从编译和链接时推迟到运行时.它会尽可能的动态的处理事情.这意味这个语言不仅需要一个编译器,还需要一个运行时系统去执行编译过的代码.这个运行时系统扮演着对于OC这个语言操作系统的的角色,使得这个语言得以运行. 这个教程将探究NSObject这个类以及OC这个语言和运行时系统是如何进行交互的.特别是如何在运行时动态的根据类的范式加载类,并且传递给其他对象.同时这个教程还将告诉你如何在你的程序运行过程中找到你的对象的运行信息. OC运行时编程指南描述了OC运行时

OC - 19.pthread和NSThread

简介 恰当的使用多线程编程可以提供任务的执行效率和系统资源的利用率 多线程是为了提高资源利用率,和应用程序的响应速度,多个线程共享应用资源 每个应用程序都有一个主线程,通常用来做UI界面刷新等 比较耗时的任务如果放在主线程中,可能会造成主线程的堵塞,无法响应用户操作,通常为耗时任务创建自己的线程,与主线程并发执行 多线程编程在一定程度上提高了系统资源的利用率和任务处理速度,但是线程不易过多,否则会引发以下问题. 过多的线程会造成处理机的频繁调度,线程调度需要消耗大量的系统资源. 同一进程下的多个

基于SpringBoot + Mybatis实现SpringMVC Web项目

一.热身 一个现实的场景是:当我们开发一个Web工程时,架构师和开发工程师可能更关心项目技术结构上的设计.而几乎所有结构良好的软件(项目)都使用了分层设计.分层设计是将项目按技术职能分为几个内聚的部分,从而将技术或接口的实现细节隐藏起来. 从另一个角度上来看,结构上的分层往往也能促进了技术人员的分工,可以使开发人员更专注于某一层业务与功能的实现,比如前端工程师只关心页面的展示与交互效果(例如专注于HTML,JS等),而后端工程师只关心数据和业务逻辑的处理(专注于Java,Mysql等).两者之间

OC语言知识5

本文目录 前言 一.获取当前线程 二.获取主线程 三.NSThread的创建 四.暂停当前线程 五.线程的其他操作 六.优缺点 回到顶部 前言 每个iOS应用程序都有个专门用来更新显示UI界面.处理用户触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验.一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法. iOS中有3种常见的多线程编程方法: 1.NSThread 这种

MVC5 + EF6 完整入门教程三

期待已久的EF终于来了. 学完本篇文章,你将会掌握基于EF数据模型的完整开发流程. 本次将会完成EF数据模型的搭建和使用. 基于这个模型,将之前的示例添加数据库查询验证功能. 文章提纲 概述 & 要点 详细步骤 总结 概述 & 要点 下面是本文要点,正文部分会有详细介绍. EF架构图 新建基于EF的Data Model的约定 关于ORM的重要概念,和传统方式开发的区别 EF开发的整体过程 详细步骤 新建文件夹,规划好代码摆放位置 创建相关类 (Data Model) 创建 Database