2012-11-05 97 views
0

我創建了一個包含多個UIImageView實例的UIScrollView。 SDWebImage框架用於緩存圖像並將它們呈現在UIImageView實例中。現在我想能夠點擊這些UIImageView的實例。將UIImageView添加到UIButton

此前我將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]; 

我現在需要做以下的ImageView點擊:

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

SDWebImage也有UIButtons類別 - 我剛改用它。 – Marc

回答

0

我不熟悉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); 
} 
+0

感謝您的建議!我首先嚐試修改imageView屬性建議。不幸的是,這並沒有奏效!我嘗試了第二個,並創建了一個輕敲識別器(使用上面的代碼)。 imageview處理輕擊,但該動作發送到選擇器buttonClicked :.此操作用於查看點擊按鈕的標籤。 (我曾經設置[buttonName setTag:tagId]),但我無法將標記添加到手勢識別器。任何想法我可以做什麼? –

+0

@AlexvanRijs查看我對我的帖子所做的更改。並且原諒任何輕微的錯誤,我正在用iPad寫作。 –