iOS では、文字列 ID を UI オブジェクトに割り当てて、その ID でコード内で取得することはできますか?
Androidに似たものを探していますfindViewById(id)
iOS では、文字列 ID を UI オブジェクトに割り当てて、その ID でコード内で取得することはできますか?
Androidに似たものを探していますfindViewById(id)
使用できますviewWithTag
が、タグのタイプは次のInt
とおりです。
let superView = UIView()
let subView = UIView()
subView.tag = 100
superView.addSubview(subView)
let v = superView.viewWithTag(100)
使用する場合、xib
またはstoryboard
次のように id をバインドできます。
obj を obj にバインドできるランタイムを使用しますが、必要ないようです:
objc_setAssociatedObject(superView, "key", subView, .OBJC_ASSOCIATION_RETAIN)
let v = objc_getAssociatedObject(superView, "key")
列挙型を使用してビューを取得できます:
enum UIKey:String {
case AA = "aa"
func findView(byKey:String ,fromView:UIView) -> UIView {
let v :UIView!
switch self {
// get view from real tag value
case .AA: v = fromView.viewWithTag(1)
}
return v
}
}
次に使用します:
let dict = ["aa":123]
dict.forEach { (key,value) in
let v = UIKey(rawValue: key)?.findView(key, fromView: self.view)
//set v with your value
}