我以編程方式創建了許多UI元素。比方說50個UILabels。 什麼是訪問標籤屬性的正確方法? 現在,我通過「發送」加入標籤,在[子視圖]數組,並獲得標註屬性每個標籤和下一個搜索標籤:引用以編程方式創建的UI元素
func buttonTapped(sender: UIButton) {
for subview in containerView.subviews {
if let label = subview as? UILabel, label.tag == sender.tag {
// do stuff
}
}
}
不知道這是最優雅的方式,因爲有一些問題,如果我們將標籤更改爲按鈕。
比方說:
func createButton() {
let button = UIButton(frame: CGRect(origin: ...,
size: ...))
button.addTarget(self, action: #selector(buttonTapped(sender:)), for: .touchUpInside)
let longTap = UILongPressGestureRecognizer(target: self, action: #selector(disableButton(sender:)))
longTap.minimumPressDuration = 1
button.addGestureRecognizer(longTap)
.......
containerView.addSubview(button)
}
,現在我不能disableButton(發件人:)方法通過「發件人」訪問屬性,因爲發件人是UILongPressGestureRecognizer。
似乎我做錯了,如果它適用於標籤,但不適用於按鈕。 請,引導我在正確的方向
但是長時間敲擊怎麼辦?我碰到沒有問題只是觸摸 – drywet
長期按[長按]這個鏈接(https://stackoverflow.com/questions/45243947/uilabel-long-press-gesture-for-menu-item-of-uimenucontroller) –