ios:UIPageControl 的垂直位置不明确

标签 ios swift autolayout ambiguity

我有一个 UIPageControl 作为 UICollectionView 的 subview 。以下是 UICollectionView 的约束:

let collectionViewConstraints = [
        collectionView.topAnchor.constraint(equalTo: view.topAnchor),
        collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
        collectionView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.65),
        collectionView.widthAnchor.constraint(equalTo: view.widthAnchor)
    ]

collectionView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate(collectionViewConstraints)

UIPageControl 的约束是:

collectionView.addSubview(pageControl)
let pageControlConstraints = [
        pageControl.centerXAnchor.constraint(equalTo: view.centerXAnchor),
        pageControl.bottomAnchor.constraint(equalTo: collectionView.bottomAnchor, constant: 100)
    ]

pageControl.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate(pageControlConstraints)

因为 pageControlintrinsicContentSize,我只指定它的 x 和 y 位置。但是,我遇到了 pageControl 垂直位置的不明确布局错误。

enter image description here

如第一个屏幕截图所示,pageControl 似乎没有固定到 collectionView 的底部。在调试 View 层次结构时,似乎 pageControl 的底部边缘相对于 collectionView 的底部边缘进行布局,但两者之间的距离似乎比我指定的 (100)。

enter image description here enter image description here

我不确定是什么导致了这种不明确的布局,因为我相信我已经为 pageControl 指定了所有必要的约束。如果有任何反馈,我将不胜感激。

注意:如果我将 pageControl 约束为 collectionView.topAnchor 而不是 collectionView.bottomAnchor,歧义就会消失。

最佳答案

尝试将 UIPageControl 添加到 viewControllerview

替换

collectionView.addSubview(pageControl)

self.view.addSubview(pageControl)

关于ios:UIPageControl 的垂直位置不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146628/

相关文章:

ios - 用于完成 block 的Objective-C计时器

ios - appdelegate 中的 UIButton 外观层不起作用

ios - 如何在UIKit中更改 View ?

iOS 14 WidgetKit : How to create different layouts for every widget size family?

ios - UIActivityIndi​​catorView 在异步任务期间不显示

iphone - 如何使除选定一个以外的所有表格 View 单元格变灰

ios - Swift - 为什么 Process.arguments 返回空数组

ios - 保持 UIStackView 位于比例 UIStackView 内的正下方、顶部 UIStackView

ios - 如何使用自动布局将 UITextField 重新定位到特定位置

ios - UILabel 自动换行功能即使有足够的空间供单词使用也能留出空间