排队UIButton的CenterYAnchor到UIPageControl Swift
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排队UIButton的CenterYAnchor到UIPageControl Swift相关的知识,希望对你有一定的参考价值。
我有一些代码,我在UIButton
中添加一个“接近”的UIPageController.view
,这很有效。
工作代码:
class func closeButton(_ pageController: UIPageViewController) -> UIButton {
let button = UIButton()
button.setTitleColor(UIColor.white, for: UIControlState())
button.setTitle("Close", for: UIControlState())
button.titleLabel!.font = UIFont.systemFont(ofSize: 15)
button.contentHorizontalAlignment = UIControlContentHorizontalAlignment.left
button.translatesAutoresizingMaskIntoConstraints = false
pageController.view.addSubview(button)
button.widthAnchor.constraint(equalToConstant: 50).isActive = true
button.heightAnchor.constraint(equalToConstant: 36).isActive = true
button.trailingAnchor.constraint(equalTo: pageController.view.trailingAnchor).isActive = true
button.bottomAnchor.constraint(equalTo: pageController.view.bottomAnchor).isActive = true
return button
}
但后来我在iPhone X模拟器上测试了我的代码,而UIPageControl
从底部比其他iPhone高得多。所以现在我刚刚添加的关闭按钮位于底部圆角,UIPageControl
更高。
那么我尝试引用UIPageControl
:
let pageControl: UIPageControl = UIPageControl.appearance()
然后将button.bottomAnchor.constraint...
替换为:
button.centerYAnchor.constraint(equalTo: pageControl.centerYAnchor).isActive = true
但这会导致错误抛出。我尝试打印UIPageControl.frame
,它是0,0,0,0。所以我认为这与它有关。
有没有办法对UIPageControl进行约束?
答案
如果您使用的是自定义视图,请尝试在layoutSubviews()方法或视图控制器的viewDidLayoutSubviews()方法中更新约束:
func layoutSubviews() {
super.layoutSubviews()
button.centerYAnchor.constraint(equalTo: pageControl.centerYAnchor).isActive = true
}
以上是关于排队UIButton的CenterYAnchor到UIPageControl Swift的主要内容,如果未能解决你的问题,请参考以下文章