내 viewWillAppear()에서 레이블을 만들고 태그를 지정합니다. 다른 조건이 충족되면 레이블을 제거하려고 시도하지만 어떤 이유로 작동하지 않고 레이블이 여전히보기에 있습니다. 나는태그가있는보기를 찾을 수 없습니다
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
var label: UILabel?
// Add label if there are no recipes
if (recipeBook.recipesArr.count == 0) {
label = self.view.viewWithTag(123) as? UILabel
//label?.tag = 123 // arbitrary num
label = UILabel(frame: CGRect(x: 0, y: self.view.frame.height/3, width: self.view.frame.width, height: 100))
label?.text = "Add A Recipe"
label?.textColor = UIColor(red:0.93, green:0.92, blue:0.92, alpha:1.0)
label?.font = label?.font.withSize(36)
label?.textAlignment = .center
self.view.addSubview(label!)
}
else {
// remove it
if let foundLabel = self.view.viewWithTag(123) {
foundLabel.removeFromSuperview()
} else {
print("Couldn't find label with tag in view")
}
}
}
내가이 줄 label = UILabel(frame: CGRect(x: 0, y: self.view.frame.height/3, width: self.view.frame.width, height: 100))
내가 0의 기본 태그 내가 만드는 아니에요 너무 label?.frame = CGRect(x: 0, y: self.view.frame.height/3, width: self.view.frame.width, height: 100)
에 변경이있는 새 레이블을 만들되었다에서 몰랐어요 ... 뭔가 잘못하고 있어야합니다 새로운 레이블과 모든 것이 잘 작동합니다. 어리석은 실수.
당신은'viewWillAppear'에서 태그에 의한 레이블을 얻었고 다음 줄에서는 디폴트 태그 0으로 새로운'UILabel' 인스턴스로 덮어 씁니다. 무엇을 기대합니까? – vadian