我有一个UIPageControl
作为UICollectionView
的子视图。以下是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)
由于pageControl
具有intrinsicContentSize
,因此我仅指定其x和y位置。但是,对于pageControl
的垂直位置,我遇到了一个模棱两可的布局错误。
如第一个屏幕截图所示,pageControl
似乎没有固定在collectionView
的底部。调试视图层次结构时,似乎pageControl
的底部边缘相对于collectionView
的底部边缘布置,但是两者之间的距离似乎比我指定的要大得多(100) 。
我不确定是什么原因导致这种歧义的布局,因为我相信我已经为pageControl
指定了所有必要的约束。我将不胜感激。
注意:如果我将pageControl
约束为collectionView.topAnchor
而不是collectionView.bottomAnchor
,则模糊性就会消失。
答案 0 :(得分:0)
尝试将UIPageControl
添加到viewController
的{{1}}。
替换
view
使用
collectionView.addSubview(pageControl)