【问题标题】:IOS: change UIImageView with tag valueIOS:用标签值改变 UIImageView
【发布时间】:2011-08-15 09:14:27
【问题描述】:

我有 20 个 UIImageView,我想更改它们的图像;但我不想创建 20 个 IBOutlet,我想使用标签值来更改图像;我在界面生成器和之后设置标签值?如果我想在 Imageview 15 号更改图像?我该怎么办?

【问题讨论】:

    标签: objective-c xcode ios tags uiimageview


    【解决方案1】:

    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)")
    }
    

    【讨论】:

      【解决方案2】:
      UIImageView *imageView=(UIImageView *)[self.view viewWithTag:*givetag*];
      [imageView setImage:[UIImage imageNamed:@"nameof yourimage"]];
      

      【讨论】:

        【解决方案3】:

        如果你使用标签,你可以像这样识别你的标签视图(UIImageView 是 UIView 的子类,具有标签属性):

        - (UIView *)viewWithTag:(NSInteger)tag
        

        因此,如果您在您的超级视图(所有 UIImageView 都驻留在其中)上调用此方法,您应该这样做:

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

        Documentation 我用谷歌找到的)。

        P.S:如果您认为添加 20 个 IBOutlets 工作量太大,我建议您也以编程方式创建 UIImageViews。这样你就完全不需要 xib 文件了,只需要编写一小段代码,就能事半功倍。

        【讨论】:

        • 你可能想输入它,因为 viewWithTag 返回 UIView..UIImageView myImageView = (UIImageView)[myAwesomeSuperview viewWithTag:15];
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-01
        相关资源
        最近更新 更多