【问题标题】:Swift: access UIView children from [Int: UIView]()Swift:从 [Int: UIView]() 访问 UIView 子项
【发布时间】:2018-07-02 11:02:11
【问题描述】:

我使用下面的代码将view添加到scrollview并将view保存到viewAll

var viewAll = [Int: UIView]()

i = 0
for pack in packs as! [[String: AnyObject]] {
    let packId = Int(pack["packId"] as! String)
    let packTitle = pack["packTitle"] as! String

    let view = CategoryClass.createMyClassView()
    view.pcId.text = packId
    view.pcTitle.text = packTitle

    viewAll[i] = view
    i = i+1

    myScrollView.addSubview(view)
}

它工作正常。

现在我想再次访问子视图:

for view in viewAll {
    view.value.pcId.text = "TEST"  
}

这条线不起作用:view.value.pcId.text = "TEST"

类别类:

class CategoryClass: UIView {
    @IBOutlet weak var pcId: UILabel!
    @IBOutlet weak var pcTitle: UILabel!

    class func createMyClassView() -> CategoryClass {
        let myClassNib = UINib(nibName: "Category", bundle: nil)
        return myClassNib.instantiate(withOwner: nil, options: nil)[0] as! CategoryClass
    }
}

【问题讨论】:

  • 请添加您的CategoryClass 代码。
  • @ivarun 我添加类

标签: swift uiview uiscrollview


【解决方案1】:

这是因为铸造你需要改变

var viewAll = [Int: UIView]()

var viewAll = [Int: CategoryClass]()

//

也改一下

view.value.pcId.text = "TEST"  

view.pcId.text = "TEST"  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多