For UIPageControl
there are appearance and functionality differences, but as far as layout goes the only difference should be the intrinsic height.
Here is a simple example... add a "container" UIView
, and add a page control as a subview of that container:
class ViewController: UIViewController {
let contentContainerView = UIView()
let pageControl = UIPageControl()
override func viewDidLoad() {
super.viewDidLoad()
contentContainerView.translatesAutoresizingMaskIntoConstraints = false
pageControl.translatesAutoresizingMaskIntoConstraints = false
contentContainerView.addSubview(pageControl)
view.addSubview(contentContainerView)
// respect safe area
let g = view.safeAreaLayoutGuide
NSLayoutConstraint.activate([
contentContainerView.topAnchor.constraint(equalTo: g.topAnchor, constant: 20.0),
contentContainerView.leadingAnchor.constraint(equalTo: g.leadingAnchor, constant: 20.0),
contentContainerView.trailingAnchor.constraint(equalTo: g.trailingAnchor, constant: -20.0),
contentContainerView.heightAnchor.constraint(equalToConstant: 120.0),
pageControl.leadingAnchor.constraint(equalTo: contentContainerView.leadingAnchor, constant: 16.0),
pageControl.trailingAnchor.constraint(equalTo: contentContainerView.trailingAnchor, constant: -16.0),
pageControl.bottomAnchor.constraint(equalTo: contentContainerView.bottomAnchor, constant: -8.0),
])
contentContainerView.backgroundColor = .systemYellow
pageControl.backgroundColor = .systemTeal
pageControl.numberOfPages = 7
}
}
Here's how it looks between iOS 14 (on the left) and iOS 13 (on the right):
