您的位置:首页 > 产品设计 > UI/UE

多个UIImageView添加tap事件 并分别进行处理

2012-10-25 19:38 435 查看
- (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;
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: