1

複数の UIImageView インスタンスを含む UIScrollView を作成しました。SDWebImage フレームワークは、画像をキャッシュして UIImageView インスタンスに表示するために使用されます。今、UIImageView のこれらのインスタンスをクリックできるようにしたいと考えています。

以前、UIScrollView に UIButtons を追加し、このボタンに画像を追加しました。しかし、ボタンに UIImageView を追加できないことを知っています。これをどのように解決すればよいですか?このビューに UIButton を配置するオプションはありますか? どうすればいいですか?

以前はこれを使用してクリック可能な画像を追加しました (SDWebImage フレームワークのためにこれを変更する必要があるため、UIImage imageNamed:forState を使用できません)。

        CGFloat y = i * self.view.frame.size.height/6; 
        UIButton* aButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [aButton setTag:[[idsCol objectAtIndex: i] intValue]];
        aButton.frame = CGRectMake(0, y, self.view.frame.size.width/3, self.view.frame.size.height/6);

        aButton.imageView.contentMode = UIViewContentModeScaleAspectFit;

        [aButton setImage:[UIImage imageNamed:@"image.jpg" forState:UIControlStateNormal];

        [aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
        aButton.adjustsImageWhenHighlighted = NO;
        [scrollView addSubview:aButton];

現在、次のイメージビューをクリック可能にする必要があります。

[testImageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
4

1 に答える 1

1

私は に慣れてSDWebImageいませんが、このフレームワークでボタンの imageView プロパティを直接変更できる場合は、次のようにしたほうがよいでしょう:

[myButton.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

または、画像ビューを使い続けたい場合は、単純なタップ ジェスチャを追加して「クリック可能」にすることができます。

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myMethod:)];
[tap setNumberOfTapsRequired:1];
[tap setNumberOfTouchesRequired:1];
[testImageView setUserInteractionEnabled:YES];
[testImageView addGestureRecognizer:tap];




- (void)myMethod:(UIGestureRecognizer *)sender
{
    NSLog(@"%u",sender.view.tag);
}
于 2012-11-05T16:08:57.430 に答える