Below code is not working as expected. the InfoLabel is not added to the view. I am calling the below methods in the order mentioned from viewDidLoad. Any quick help/insights will be great. Thanks! Note : I have declared all variables in the viewcontroller and not setting any properties until the respective setup blocks are called.
self.view.addSubview(cancelButton)
cancelButton.translatesAutoresizingMaskIntoConstraints = false
cancelButton.addTarget(self, action: #selector(cancelButtonClicked(_:)), for: .touchUpInside)
let constraints = [
cancelButton.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor),
cancelButton.widthAnchor.constraint(equalToConstant: 40),
cancelButton.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor),
cancelButton.heightAnchor.constraint(equalToConstant: 40)
]
NSLayoutConstraint.activate(constraints)
print(cancelButton.frame)
}
private func saveButtonSetup(){
self.view.addSubview(saveButton)
saveButton.translatesAutoresizingMaskIntoConstraints = false
saveButton.addTarget(self, action: #selector(saveButtonClicked(_:)), for: .touchUpInside)
let constraints = [
saveButton.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor),
saveButton.widthAnchor.constraint(equalToConstant: 40),
saveButton.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor),
saveButton.heightAnchor.constraint(equalToConstant: 40)
]
NSLayoutConstraint.activate(constraints)
print(saveButton.frame)
}
private func TitleLabelSetup(){
TitleLabel.backgroundColor = UIManager.Colors.cellBGColor
TitleLabel.textAlignment = .center
TitleLabel.font = UIManager.Fonts.titleFont
TitleLabel.textColor = UIManager.Colors.titleColor
self.view.addSubview(TitleLabel)
let constraints = [
TitleLabel.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor/*self.cancelButton.trailingAnchor*/,constant: 0),
TitleLabel.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor/*self.saveButton.leadingAnchor*/, constant: 0),
TitleLabel.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor),
TitleLabel.heightAnchor.constraint(equalToConstant: 40)
]
NSLayoutConstraint.activate(constraints)
print(TitleLabel.frame)
}
private funcInfoLabelSetup(){
self.view.addSubview(InfoLabel)
let constraints = [
InfoLabel.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor,constant: 0),
InfoLabel.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor, constant: 0),
InfoLabel.topAnchor.constraint(equalTo: TitleLabel.bottomAnchor,constant: 1),
Label.heightAnchor.constraint(equalToConstant: 40)
]
NSLayoutConstraint.activate(constraints)
print(InfoLabel,InfoLabel.frame)
}
}```
CodePudding user response:
translatesAutoresizingMaskIntoConstraints is not set to false for your closureInfoLabel and closeRequestTitleLabel.
CodePudding user response:
Your constraints are wrong.
You are anchoring leadingAnchor to the trailingAnchor of of view
and trailingAnchor to the leadingAnchor of view
. Also you need to set
translatesAutoresizingMaskIntoConstraints
to false
Here is the correction:
private func closureInfoLabelSetup(){
self.view.addSubview(closureInfoLabel)
closureInfoLabel.translatesAutoresizingMaskIntoConstraints = false
let constraints = [
closureInfoLabel.leadingAnchor.constraint(equalTo: self.view.leadingAnchor,constant: 0),
closureInfoLabel.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: 0),
closureInfoLabel.topAnchor.constraint(equalTo: closeRequestTitleLabel.bottomAnchor,constant: 1),
closureInfoLabel.heightAnchor.constraint(equalToConstant: 40)
]
NSLayoutConstraint.activate(constraints)
print(closureInfoLabel,closureInfoLabel.frame)
}