2011-04-29 41 views
10

我有20個UIImageView,我想改變它們的圖像;但我不想創建20 IBOutlet,並且我想使用標記值來更改圖像;我在界面構建器中設置了標籤值,之後?如果我想在Imageview編號15更改圖像?我能怎麼做?iOS:改變UIImageView的標記值

回答

10

如果您使用標籤可以識別您所標記的看法(UIImageView的是UIView的子類,它具有標籤屬性)是這樣的:

- (UIView *)viewWithTag:(NSInteger)tag 

所以,如果你調用這個方法對您的上海華盈(所有在UIImageViews的駐留在),你應該這樣做是這樣的:

UIImageView *myImageView = (UIImageView *)[myAwesomeSuperview viewWithTag:15]; 

Documentation我發現使用谷歌)。如果你認爲添加20個IBOutlets的工作太多,我建議你也以編程的方式創建UIImageViews。這樣,你根本不需要一個xib文件,只需編寫一小段代碼並以較少的工作量進行更好的維護。

+2

您可能要強制類型轉換它,因爲viewWithTag返回UIView..UIImageView * myImageView =(UIImageView的*)[myAwesomeSuperview viewWithTag:15]; – Krishnabhadra 2011-04-29 09:59:53

+0

@Krishnabhadra你是對的,更新了我的回覆。 – Jake 2011-04-29 10:01:25

+0

謝謝:)它幫助 – veereev 2014-01-09 07:45:10

17
UIImageView *imageView=(UIImageView *)[self.view viewWithTag:*givetag*]; 
[imageView setImage:[UIImage imageNamed:@"nameof yourimage"]]; 
2

SWIFT,2015年4月:

func createUIImageViews() 
{ 
    for i in 0...99 
    { 
     var imageView:UIImageView = UIImageView(frame: CGRectMake(CGFloat(0), CGFloat(0), CGFloat(100), CGFloat(100))) 
     imageView.userInteractionEnabled = true 
     imageView.tag = i 
     imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "onImageViewTap:")) 

     self.view.addSubview(imageView) 
    } 
} 



func onImageViewTap(sender:UITapGestureRecognizer) 
{ 
    println("TAP: \(sender.view!.tag)") 
}