IOS: change UIImageView with tag value

前端 未结 3 994
梦如初夏
梦如初夏 2021-02-08 12:51

I have 20 UIImageView and i want change their image; but I don\'t want to create 20 IBOutlet, and I want to use tag value to change the image; I set the tag value in interface b

相关标签:
3条回答
  • 2021-02-08 13:37

    SWIFT, April 2015:

    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)")
    }
    
    0 讨论(0)
  • 2021-02-08 13:45

    If you use tags you can identify your tagged view (UIImageView is a subclass of UIView, which has the tag attribute) like this:

    - (UIView *)viewWithTag:(NSInteger)tag
    

    So if you call this method on your superview (which all the UIImageViews reside in), you should do it like this:

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

    (Documentation I found using Google).

    P.S: if you think it is too much work to add 20 IBOutlets, I recommend you create the UIImageViews programmatically as well. This way you will not need a xib file at all, write a small piece of code and have better maintenance with less effort.

    0 讨论(0)
  • 2021-02-08 13:46
    UIImageView *imageView=(UIImageView *)[self.view viewWithTag:*givetag*];
    [imageView setImage:[UIImage imageNamed:@"nameof yourimage"]];
    
    0 讨论(0)
提交回复
热议问题