程序上创建的UIPageControl不显示

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

在我的视图层次结构中,我有一个UIPageViewController(在一个容器视图里面)。下面是UIPageControl,底部是一个由文本视图和按钮组成的堆栈视图,我看到了UIPageViewController和堆栈视图,但没有看到UIPageControl。我看到了UIPageViewController和堆栈视图,但没有看到UIPageControl。请问我做错了什么?

// Page view controller
        introPageViewC = IntroPageViewC()
        addChild(introPageViewC)

        introPageViewC.view.translatesAutoresizingMaskIntoConstraints = false
        containerView.addSubview(introPageViewC.view)

        NSLayoutConstraint.activate([
            introPageViewC.view.topAnchor.constraint(equalTo: containerView.topAnchor, constant: 0.0),
            introPageViewC.view.bottomAnchor.constraint(equalTo: containerView.bottomAnchor, constant: 0.0),
            introPageViewC.view.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: 0.0),
            introPageViewC.view.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: 0.0),
            ])

        introPageViewC.didMove(toParent: self)

        // Page view control

        introPageControl.currentPageIndicatorTintColor = UIColor.orange
        introPageControl.pageIndicatorTintColor = UIColor.lightGray.withAlphaComponent(0.8)

        view.addSubview(introPageControl)

        introPageControl.translatesAutoresizingMaskIntoConstraints = false
        introPageControl.topAnchor.constraint(equalTo: containerView.bottomAnchor, constant: 10).isActive = true
        introPageControl.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true

        // Stack view
        view.addSubview(stackView)
        stackView.axis = .vertical
        stackView.distribution = .fillEqually
        stackView.spacing = 30

        stackView.translatesAutoresizingMaskIntoConstraints = false
        stackView.topAnchor.constraint(equalTo: introPageControl.bottomAnchor, constant: 10).isActive = true
        stackView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor, constant: 40).isActive = true
        stackView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: -40).isActive = true

预期的输出:enter image description here

编辑:试图添加到堆栈视图中。

var allViews = [UIView]()

        // Adding to stackview
        introPageControl.currentPageIndicatorTintColor = UIColor.orange
        introPageControl.pageIndicatorTintColor = UIColor.lightGray.withAlphaComponent(0.8)
        allViews.append(introPageControl)

        nameTextField = UITextField(frame: CGRect(x: 0, y: 0, width: 120, height: 40))
        nameTextField.placeholder = "Mealplan name"
        Utilities.styleTextField(nameTextField)
        nameTextField.setPadding()
        allViews.append(nameTextField)

        let nextButton = UIButton(type: .system)
        nextButton.frame = CGRect(x: 20, y: 20, width: 100, height: 40)
        nextButton.setTitle("Next", for: .normal)
        nextButton.titleLabel?.textColor = .white
        nextButton.titleLabel?.font = UIFont(name: "NexaBold", size: 16)
        Utilities.styleDefaultButton(nextButton)
        nextButton.addTarget(self, action: #selector(tapSubmit(_:)), for: .touchUpInside)
        allViews.append(nextButton)

        errorLabel.frame = CGRect(x: 20, y: 20, width: 100, height: 40)
        errorLabel.font = UIFont(name: "NexaBold", size: 16)
        errorLabel.textColor = .systemRed
        errorLabel.textAlignment = .center
        errorLabel.alpha = 0
        allViews.append(errorLabel)

        for eachView in allViews {
            stackView.addArrangedSubview(eachView)
        }
swift autolayout uipagecontrol
1个回答
0
投票

introPageControl.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true我相信你的意思是 centerXAnchor?


0
投票

我想你把topAnchor的位置搞错了。现在,它似乎被限制在容器视图的底部加10,也就是...。隐隐约约. 我想你的意思是说 -10.

introPageControl.topAnchor.constraint(equalTo: containerView.bottomAnchor, constant: -10).isActive = true
© www.soinside.com 2019 - 2024. All rights reserved.