【发布时间】:2021-10-19 02:39:27
【问题描述】:
以下代码未按预期工作。 InfoLabel 未添加到视图中。我按照 viewDidLoad 中提到的顺序调用以下方法。任何快速帮助/见解都会很棒。 谢谢! 注意:我已经在视图控制器中声明了所有变量,并且在调用相应的设置块之前没有设置任何属性。
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)
}
}```
【问题讨论】:
标签: ios swift iphone frame nslayoutconstraint