1

我创建了一个包含多个 UIImageView 实例的 UIScrollView。SDWebImage 框架用于缓存图像并将它们呈现在 UIImageView 实例中。现在我希望能够点击这些 UIImageView 实例。

以前我将 UIButtons 添加到 UIScrollView 并在此按钮中添加了图像。但知道我无法将 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 回答