嗨,我对添加这样一个简单的按钮感到沮丧,我不知道是我还是Xcode如此麻烦。所以我想在视图控制器的底部添加一个按钮,但是没有显示出来。这是我的代码和我的应用程序的图片。
let startAbsenceBtn = GButton()
override func viewDidLoad() {
super.viewDidLoad()
calendarView.isHidden = true
setupContainer()
setupOrangeView()
setupStackView()
setupCalendar()
setupAbsenceBtn()
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(DailyVC.handleTap(gesture:)))
containerView.addGestureRecognizer(tapGesture)
}
private func setupAbsenceBtn() {
view.addSubview(startAbsenceBtn)
startAbsenceBtn.setTitle("Mulai Absen", for: .normal)
startAbsenceBtn.titleLabel?.font = UIFont(name: "NunitoSans-Bold", size: 15)
startAbsenceBtn.setTitleColor(.white, for: .normal)
startAbsenceBtn.backgroundColor = #colorLiteral(red: 0.4470588235, green: 0.6274509804, blue: 0.3960784314, alpha: 1)
NSLayoutConstraint.activate([
startAbsenceBtn.centerXAnchor.constraint(equalTo: view.centerXAnchor),
startAbsenceBtn.bottomAnchor.constraint(equalTo: view.bottomAnchor),
startAbsenceBtn.heightAnchor.constraint(equalToConstant: 55)
])
}
首先,您需要添加此:
startAbsenceBtn.translatesAutoresizingMaskIntoConstraints = false
如果您在IB中设置约束,则会自动为您设置。
第二,您需要完全定义约束,both放置和大小。您的位置正确centerXAnchor and
bottomAnchor, but you've only defined height. Add a
widthAnchor`。
最后,一些建议。考虑使用安全区域-Apple确实建议iPhone X系列使用此区域。另外,请记住,没有constant
修饰符,您会将此按钮放置在屏幕的非常底部。
最后的注释,从技术上来说是正确的,您正在向UIView
而不是UIViewController
添加按钮。它通常很重要(这里的我们大多数人都理解这一点),但这实际上是MVC的“ V”部分,而不是“ C”部分。 :-)