//
// ViewController.m
// unlock
//
// Created by 蔡定龙 on 15-4-9.
// Copyright (c) 2015年 李灵杰. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic,strong) NSMutableArray *dotViewsArray;
@property (nonatomic,strong) NSMutableArray *selectedViewsArray;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self viewInitial];
[self hengxianView];
[self shuxianView];
[self xiexianView];
[self nineDotView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)viewInitial{
self.dotViewsArray =[NSMutableArray arrayWithCapacity:9];
self.selectedViewsArray = [NSMutableArray arrayWithCapacity:20];
//底色背景
UIImage *bgImage = [UIImage imageNamed:@"Main_BG"];
self.view.backgroundColor = [UIColor colorWithPatternImage:bgImage];
//操作界面
[self createImageViewWihtFrame:CGRectMake(0, 50, 320, 460) andimageName:@"Unlock_DotLock1_Normal"];
[self createImageViewWihtFrame:CGRectMake(0, 25, 320, 47) andimageName:@"NavigationBar_BG"];
[self createImageViewWihtFrame:CGRectMake(100, 34, 120, 19) andimageName:@"NavigationBar_Logo"];
}
- (UIImageView *)createImageViewWihtFrame:(CGRect)rect andimageName:(NSString *)imageName{
UIImageView *tempImageView = [[UIImageView alloc]initWithFrame:rect];
tempImageView.image = [UIImage imageNamed:imageName];
[self.view addSubview:tempImageView];
return tempImageView;
}
- (void)nineDotView{
int dotTag=1;
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
CGRect rect = CGRectMake(35+ 99*j, 214 + 99*i, 52, 52);
UIImageView *dotView=[self createImageViewWihtFrame:rect andimageName:@"Unlock_DotLock1_Selected"];
dotView.hidden = YES;
dotView.tag = dotTag++;
[self.dotViewsArray addObject:dotView];
}
}
}
- (void)hengxianView{
int hengxianTag =12;
for (int i=0; i<3; i++) {
for (int j=0; j<2; j++) {
CGRect rect = CGRectMake(43+ 99*j, 220 + 99*i, 120, 37);
UIImageView *hengxianView =[self createImageViewWihtFrame:rect andimageName:@"Unlock_DotLock1_Normal_Highlight1"];
hengxianView.hidden = YES;
hengxianView.tag = hengxianTag;
hengxianTag = hengxianTag+11;
}
hengxianTag = hengxianTag+11;
}
}
- (void)shuxianView{
int shuxianTag=14;
for (int i=0; i<2; i++) {
for (int j=0; j<3; j++) {
CGRect rect = CGRectMake(43+ 99*j, 220 + 99*i, 37, 120);
UIImageView *shuxianView=[self createImageViewWihtFrame:rect andimageName:@"Unlock_DotLock1_Normal_Highlight2"];
shuxianView.hidden = YES;
shuxianView.tag = shuxianTag;
shuxianTag =shuxianTag+11;
}
}
}
- (void)xiexianView{
int rightTag=15;
int leftTag = 24;
for (int i=0; i<2; i++) {
for (int j=0; j<2; j++) {
CGRect rect1 = CGRectMake(43+ 99*j, 220 + 99*i, 120, 120);
UIImageView *rightView=[self createImageViewWihtFrame:rect1 andimageName:@"Unlock_DotLock1_Normal_Highlight3"];
CGRect rect2 = CGRectMake(50+ 99*j, 224 + 99*i, 120, 120);
UIImageView *leftView = [self createImageViewWihtFrame:rect2 andimageName:@"Unlock_DotLock1_Normal_Highlight4"];
rightView.hidden = YES;
leftView .hidden = YES;
rightView.tag=rightTag;
rightTag = rightTag +11;
leftView.tag =leftTag;
leftTag = leftTag +11;
NSLog(@"%lu",rightView.tag);
NSLog(@"%lu",leftView.tag);
}
rightTag = rightTag+11;
leftTag = leftTag+11;
}
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//得到触摸事件
UITouch *touch = [touches anyObject];
//得到触摸点坐标
CGPoint location = [touch locationInView:self.view];
for (UIImageView *dotView in _dotViewsArray) {
if(CGRectContainsPoint(dotView.frame, location)){
dotView.hidden = NO;
[_selectedViewsArray addObject:dotView];
}
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
//得到触摸的事件
UITouch *touch = [touches anyObject];
//得到触摸的点得坐标
CGPoint location = [touch locationInView:self.view];
//判断到底是哪个点
for (UIImageView *dotView in _dotViewsArray) {
if (CGRectContainsPoint(dotView.frame, location)) {
if (dotView.hidden == YES) {
dotView.hidden = NO;
[_selectedViewsArray addObject:dotView];
}
}
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
//隐藏所有
for (UIImageView *ligthView in _selectedViewsArray) {
ligthView.hidden = YES;
}
//清空数组
[_selectedViewsArray removeAllObjects];
}
// ViewController.m
// unlock
//
// Created by 蔡定龙 on 15-4-9.
// Copyright (c) 2015年 李灵杰. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic,strong) NSMutableArray *dotViewsArray;
@property (nonatomic,strong) NSMutableArray *selectedViewsArray;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self viewInitial];
[self hengxianView];
[self shuxianView];
[self xiexianView];
[self nineDotView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)viewInitial{
self.dotViewsArray =[NSMutableArray arrayWithCapacity:9];
self.selectedViewsArray = [NSMutableArray arrayWithCapacity:20];
//底色背景
UIImage *bgImage = [UIImage imageNamed:@"Main_BG"];
self.view.backgroundColor = [UIColor colorWithPatternImage:bgImage];
//操作界面
[self createImageViewWihtFrame:CGRectMake(0, 50, 320, 460) andimageName:@"Unlock_DotLock1_Normal"];
[self createImageViewWihtFrame:CGRectMake(0, 25, 320, 47) andimageName:@"NavigationBar_BG"];
[self createImageViewWihtFrame:CGRectMake(100, 34, 120, 19) andimageName:@"NavigationBar_Logo"];
}
- (UIImageView *)createImageViewWihtFrame:(CGRect)rect andimageName:(NSString *)imageName{
UIImageView *tempImageView = [[UIImageView alloc]initWithFrame:rect];
tempImageView.image = [UIImage imageNamed:imageName];
[self.view addSubview:tempImageView];
return tempImageView;
}
- (void)nineDotView{
int dotTag=1;
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
CGRect rect = CGRectMake(35+ 99*j, 214 + 99*i, 52, 52);
UIImageView *dotView=[self createImageViewWihtFrame:rect andimageName:@"Unlock_DotLock1_Selected"];
dotView.hidden = YES;
dotView.tag = dotTag++;
[self.dotViewsArray addObject:dotView];
}
}
}
- (void)hengxianView{
int hengxianTag =12;
for (int i=0; i<3; i++) {
for (int j=0; j<2; j++) {
CGRect rect = CGRectMake(43+ 99*j, 220 + 99*i, 120, 37);
UIImageView *hengxianView =[self createImageViewWihtFrame:rect andimageName:@"Unlock_DotLock1_Normal_Highlight1"];
hengxianView.hidden = YES;
hengxianView.tag = hengxianTag;
hengxianTag = hengxianTag+11;
}
hengxianTag = hengxianTag+11;
}
}
- (void)shuxianView{
int shuxianTag=14;
for (int i=0; i<2; i++) {
for (int j=0; j<3; j++) {
CGRect rect = CGRectMake(43+ 99*j, 220 + 99*i, 37, 120);
UIImageView *shuxianView=[self createImageViewWihtFrame:rect andimageName:@"Unlock_DotLock1_Normal_Highlight2"];
shuxianView.hidden = YES;
shuxianView.tag = shuxianTag;
shuxianTag =shuxianTag+11;
}
}
}
- (void)xiexianView{
int rightTag=15;
int leftTag = 24;
for (int i=0; i<2; i++) {
for (int j=0; j<2; j++) {
CGRect rect1 = CGRectMake(43+ 99*j, 220 + 99*i, 120, 120);
UIImageView *rightView=[self createImageViewWihtFrame:rect1 andimageName:@"Unlock_DotLock1_Normal_Highlight3"];
CGRect rect2 = CGRectMake(50+ 99*j, 224 + 99*i, 120, 120);
UIImageView *leftView = [self createImageViewWihtFrame:rect2 andimageName:@"Unlock_DotLock1_Normal_Highlight4"];
rightView.hidden = YES;
leftView .hidden = YES;
rightView.tag=rightTag;
rightTag = rightTag +11;
leftView.tag =leftTag;
leftTag = leftTag +11;
NSLog(@"%lu",rightView.tag);
NSLog(@"%lu",leftView.tag);
}
rightTag = rightTag+11;
leftTag = leftTag+11;
}
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//得到触摸事件
UITouch *touch = [touches anyObject];
//得到触摸点坐标
CGPoint location = [touch locationInView:self.view];
for (UIImageView *dotView in _dotViewsArray) {
if(CGRectContainsPoint(dotView.frame, location)){
dotView.hidden = NO;
[_selectedViewsArray addObject:dotView];
}
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
//得到触摸的事件
UITouch *touch = [touches anyObject];
//得到触摸的点得坐标
CGPoint location = [touch locationInView:self.view];
//判断到底是哪个点
for (UIImageView *dotView in _dotViewsArray) {
if (CGRectContainsPoint(dotView.frame, location)) {
if (dotView.hidden == YES) {
dotView.hidden = NO;
[_selectedViewsArray addObject:dotView];
}
}
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
//隐藏所有
for (UIImageView *ligthView in _selectedViewsArray) {
ligthView.hidden = YES;
}
//清空数组
[_selectedViewsArray removeAllObjects];
}
@end
今天主要学习了UIImageView制作滑动解锁。在学习中,培养良好的代码结构习惯,代码模块化,合理利用tag等。多练习会更加熟练。
Practice makes perfect