簡體   English   中英

無法從其超級視圖中刪除UILabel

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM