【问题标题】:Find object by tag (in swift)按标签查找对象(快速)
【发布时间】:2016-06-17 19:21:27
【问题描述】:

我有一个变量@IBOutlet var ImageViews: [UIImageView]!,它保存了我的故事板中的 36 个 UIImage。我已将标签设置为一个随机图像;

ImageViews[5].tag = 5

我希望能够仅通过标签找到此图像并更改其背景颜色。

(ImageViews 中带有标签 5 的图像)

HERE'S THE CODE IN C#可以翻译一下吗?我不能。

【问题讨论】:

    标签: ios swift uiimageview tags uiimage


    【解决方案1】:
    let imageView = ImageViews.filter { $0.tag == 5 }.first
    imageView?.backgroundColor = UIColor.redColor()
    

    【讨论】:

    • 如何使用它来应用背景颜色?我做imageView[0].backgroundColor = UIColor.whiteColor() 吗?
    【解决方案2】:

    试试这个:

    extension UIView {
        func findSubview(withTag tag: Int) -> UIView? {
            for subview in self.subviews {
                if subview.tag == tag {
                    return subview
                }
            }
            return nil
        }
    }
    

    它会这样使用:

    imageView.findSubview(withTag: 5)!
    

    【讨论】:

      【解决方案3】:
      extension Array where Element: UIView {
          func viewWithTag(tag: Int) -> UIView? {
              return filter { $0.tag == tag }.first
          }
      }
      

      let subview = ImageViews.viewWithTag(5)

      注意:类、方法、变量等使用驼峰式大小写。 https://github.com/raywenderlich/swift-style-guide

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 2016-02-09
        • 2016-09-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多