按钮未显示在ViewController中

问题描述 投票:0回答:1

嗨,我对添加这样一个简单的按钮感到沮丧,我不知道是我还是Xcode如此麻烦。所以我想在视图控制器的底部添加一个按钮,但是没有显示出来。这是我的代码和我的应用程序的图片。

enter image description here

    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)
        ])
    }
ios swift uibutton autolayout
1个回答
0
投票

首先,您需要添加此:

startAbsenceBtn.translatesAutoresizingMaskIntoConstraints = false

如果您在IB中设置约束,则会自动为您设置。

第二,您需要完全定义约束,both放置大小。您的位置正确centerXAnchor and bottomAnchor, but you've only defined height. Add awidthAnchor`。

最后,一些建议。考虑使用安全区域-Apple确实建议iPhone X系列使用此区域。另外,请记住,没有constant修饰符,您会将此按钮放置在屏幕的非常底部。

最后的注释,从技术上来说是正确的,您正在向UIView而不是UIViewController添加按钮。它通常很重要(这里的我们大多数人都理解这一点),但这实际上是MVC的“ V”部分,而不是“ C”部分。 :-)

© www.soinside.com 2019 - 2024. All rights reserved.