たくさんの画像を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");
}
つまり、基本的には、すべての画像をループしてから、すべてをに追加するだけですUIScrollView
。これは正常に機能します。カスタムパラメータをメソッドに渡そうとすると問題が発生しますがtestMe
、これは私が知る限り不可能です。では、ボタンをクリックして、対応するフルサイズの画像を新しいビューで表示するにはどうすればよいでしょうか。