我将一堆图像加载到 UIScrollView 中,然后调整它们的大小并在每个图像上放置一个按钮,因此当我单击较小图像上的按钮时,它将在新视图中加载全尺寸图像。
我正在努力寻找一种体面的方法,以便在单击按钮时以某种方式将图像的 URL 作为参数传递给单击处理程序,并且根据我的阅读,将参数传递给回调函数是不可能的。
这是我到目前为止的代码,
for(Card *card in crd){
pocketImage = [self imageWithImage:[UIImage imageNamed:@"pocket.png"] scaledToSize:CGSizeMake(245/2,80/2)];
pocketImageView = [[UIImageView alloc] initWithImage:pocketImage];
cardImage = [self maskImage:[UIImage imageNamed:@"animal.jpg"]];
cardImageView = [[UIImageView alloc] initWithImage:cardImage];
y = (80/2) * inc;
if (inc % 2){
x = 125;
} else {
x = 10;
y += (80/2);
}
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn addTarget:self action:@selector(testMe) forControlEvents:UIControlEventTouchUpInside];
[btn setFrame:CGRectMake(x,y-40,pocketImageView.frame.size.width,pocketImageView.frame.size.height*2)];
[pocketImageView setFrame:CGRectMake(x,y,245/2,80/2)];
[cardImageView setFrame:CGRectMake(x,y-40,245/2,80/2)];
//add the pocketImageView to the container
[imageContainer addSubview:cardImageView];
[imageContainer addSubview:pocketImageView];
[imageContainer addSubview:btn];
inc++;
}
回调函数,
-(void)testMe {
NSLog(@"works");
}
所以基本上这只是遍历所有图像,然后将它们全部附加到 a UIScrollView
,这工作正常,当我尝试将自定义参数传递给testMe
方法时出现问题,据我所知,这是不可能的,那么我如何能够单击按钮,然后在新视图中显示相应的全尺寸图像?