首页 > 解决方案 > 自动布局和情节提要不起作用 - Swift?

问题描述

我是 swift 和 ios 开发的新手,我一直在关注本教程:https ://www.youtube.com/watch?v=Vq71SPkJIus

但是由于某种原因,即使我在具有自动布局的功能视图中将文本居中,它也会一直显示到底部

截图:https ://ibb.co/9p9XV4q

到目前为止,我已尝试更改约束,但这似乎并没有将其向上移动,它几乎就像是其他东西将其向下推?

@IBOutlet weak var pageControl: UIPageControl!
    @IBOutlet weak var slideScrollView: UIScrollView!
    override func viewDidLoad() {
        super.viewDidLoad()

        slideScrollView.delegate = self
        let slides:[Slide] = createSlides()
        setupScrollView(slides: slides)
        pageControl.numberOfPages = slides.count
        pageControl.currentPage = 0
        // Do any additional setup after loading the view, typically from a nib.
    }

    func createSlides() -> [Slide] {
        let slide1:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
        slide1.label.text = "Slide1"

        let slide2:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
        slide2.label.text = "Slide2"

        return [slide1, slide2]
    }

    func setupScrollView(slides:[Slide]) {
        slideScrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.width)
        slideScrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height)
        slideScrollView.isPagingEnabled = true

        for i in 0 ..< slides.count {
            slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
            slideScrollView.addSubview(slides[i])
        }
    }

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let pageIndex = round(scrollView.contentOffset.x/view.frame.width)
        pageControl.currentPage = Int(pageIndex)
    }

标签: swiftuiscrollviewautolayoutscroller

解决方案


哇意识到我只是愚蠢。感谢@vacawama 在setupScrollViewI put height: view.frame.widthand not中看到了这一点height: view.frame.height。解决了,非常感谢@vacawama


推荐阅读