0
"close"에 UIButton
을 추가하는 코드가 있습니다. 그 코드는 훌륭합니다.UIPageControl Swift에 UIButton의 CenterYAnchor를 정렬하십시오.
일하고 CODE : 다음
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
}
그러나 나는 아이폰 X 시뮬레이터에 내 코드를 테스트하고 UIPageControl
다른 아이폰보다 바닥에서 훨씬 높다. 이제 방금 추가 한 닫기 버튼이 둥근 모서리에 있고 UIPageControl
이 훨씬 더 높습니다.
let pageControl: UIPageControl = UIPageControl.appearance()
그리고 다음으로 button.bottomAnchor.constraint...
교체 :
button.centerYAnchor.constraint(equalTo: pageControl.centerYAnchor).isActive = true
그러나이 오류가 발생되도록
그래서 그때로하여UIPageControl
를 참조했습니다. 나는
UIPageControl.frame
을 인쇄하려고했는데 그것은 0,0,0,0입니다. 그래서 나는 그것과 관련이 있다고 가정하고 있습니다.
UIPageControl에 대한 제한을 만드는 방법이 있습니까?
내가 두 부분으로 기능을 분할. 단추를 만드는 단추와 단추를 만드는 단추. 그것을 만드는 첫 번째 부분은 여전히'ViewDidLoad'를 호출하지만'viewDidLayoutSubviews'를 호출하는 두 번째 부분을 제약합니다. 너는 나를 거기에 데려왔다. 대부분 'viewDidLayoutSubviews'에 모든 것을 넣을 수 있지만 'isHidden = true'를 결정하는 또 다른 부분이 있으므로'ViewDidLoad '에서 버튼을 만들어야합니다. 다시 한 번 감사드립니다! –
좋은 선택;) viewDidLayoutSubviews에서 pageControl 프레임을 얻었으므로 여기에서 제약 조건을 업데이트 할 수 있습니다. 대신에 단추를 만든 부분이 viewDidLoad에서 호출하는 것이 옳습니다. 천만에요 ;) –