[英]Can't remove UILabel from it's superview
我面臨一個問題。 我有一個將UILabel添加到其他視圖的類。
那是課程:
class noDataColor{
let errLabel = UILabel()
func addNoDataLabel(_ tableView:UITableView, text:String, color: UIColor){
//Err label
self.errLabel.frame = CGRect(x: 15, y: 20, width: tableView.bounds.width, height: 60)
self.errLabel.textColor = color
self.errLabel.text = text
self.errLabel.isHidden = false
tableView.addSubview(self.errLabel)
print("errLabelFrame\(errLabel.frame)") //Prints normal frame
}
func removeNoDataLabelColor(){
//Err label
print("Executed")
errLabel.isHidden = true
errLabel.removeFromSuperview()
errLabel.textColor = UIColor.clear
print("errLabelFrame\(errLabel.frame)") //Prints (0.0,0.0,0.0,0.0)
}
}
然后,我使用此行添加errLabel(一切正常,並添加了標簽):
noDataColor().addNoDataLabel(self.tableView, text: errorMessage!, color: .white)
但是我的問題來了,因為這行什么都不做:
noDataColor().removeNoDataLabelColor()
,即使它顯示"Executed"
。
我的問題是:如何在不使用委托的情況下刪除errLabel。
注意:我在與noDataColor
類不同的類中使用這些行。
謝謝 :)
每次調用noDataColor()
都會創建一個新的類實例。
noDataColor().addNoDataLabel(self.tableView, text: errorMessage!, color: .white)
noDataColor().removeNoDataLabelColor()
第二行創建了noDataColor
的新實例,該實例從未addNoDataLabel(_, text:, color:)
過addNoDataLabel(_, text:, color:)
。 您需要圍繞以下內容保存您的課程參考:
let noDataColor = noDataColor()
noDataColor.addNoDataLabel(self.tableView, text: errorMessage!, color: .white)
noDataColor.removeNoDataLabelColor()
如您所見,您需要在同一對象上調用方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.