多个UIImageView添加tap事件 并分别进行处理
来源:互联网 发布:vb中如何建立数据库 编辑:程序博客网 时间:2024/06/05 05:45
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view from its nib. //初始化 isSelected = NO; UIImageView *imageView; UIImage *image; int i; int x;//x坐标 int y;//y坐标 //创建触发器 for (i=0; i<9; i++) { image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i+1]]; imageView = [[UIImageView alloc] initWithImage:image]; //创建imageview坐标 x = (i%3)*102; y = (i/3)*152+2; imageView.frame = CGRectMake(x, y, 100, 150); //标记tag imageView.tag = i; //要早imageView上添加tag事件 必须设置 userInteractionEnabled 属性值为YES imageView.userInteractionEnabled = YES; UITapGestureRecognizer * tgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClick:)]; //在uiview上面添加触发器 [imageView addGestureRecognizer:tgr]; //填充方式 imageView.contentMode = UIViewContentModeScaleAspectFit; [self.view addSubview:imageView]; [imageView release]; } }
-(void)onClick:(UIGestureRecognizer *)sender{ int i = sender.view.tag; for (UIImageView *imageView in self.view.subviews) { if (imageView.tag == i) { if (isSelected==NO) { imageView.frame = CGRectMake(0, 0, 320, 460); // imageView.contentMode = UIViewContentModeScaleAspectFill; imageView.center = self.view.center; //将点击的图片放到最上层 会更改数组的顺序 [self.view bringSubviewToFront:imageView]; isSelected = YES; }else{ imageView.frame = CGRectMake((i%3)*102, (i/3)*152+2, 100, 150); //imageView.contentMode = UIViewContentModeScaleToFill; isSelected = NO; } } } for(UIImageView *imageView in self.view.subviews){ if (imageView.tag != i) { if (isSelected == YES) { imageView.hidden = YES; }else{ imageView.hidden = NO; } } } }