Почему pageControl не нажимает точку, чтобы изменить страницу с помощью swift?
Я практикую использовать scrollview и pagecontrol как баннер AD. Но у меня есть проблема, что я нажимаю точку в pagecontrol, чтобы не изменить страницу. И я нажимаю регион из управления страницей, страница успешно меняется. Что со мной не так?
class ViewController: UIViewController, UIScrollViewDelegate {
var myScrollView: UIScrollView!
var pageControl: UIPageControl!
var fullSize :CGSize!
override func viewDidLoad() {
super.viewDidLoad()
fullSize = UIScreen.main.bounds.size
myScrollView = UIScrollView()
myScrollView.frame = CGRect(x: 0, y: 20,width: fullSize.width, height: fullSize.height - 20)
myScrollView.contentSize = CGSize(width: fullSize.width * 5, height: fullSize.height - 20)
myScrollView.showsHorizontalScrollIndicator = false
myScrollView.showsVerticalScrollIndicator = false
myScrollView.bounces = true
myScrollView.delegate = self
myScrollView.isPagingEnabled = true
self.view.addSubview(myScrollView)
pageControl = UIPageControl(frame: CGRect(x: 0, y: 0, width: fullSize.width * 0.85, height: 50))
pageControl.center = CGPoint(x: fullSize.width * 0.5, y: fullSize.height * 0.85)
pageControl.isUserInteractionEnabled = true
pageControl.numberOfPages = 5
pageControl.currentPage = 0
pageControl.currentPageIndicatorTintColor = UIColor.black
pageControl.pageIndicatorTintColor = UIColor.lightGray
pageControl.addTarget(self,action: #selector(ViewController.pageChanged),for: .valueChanged)
self.view.addSubview(pageControl)
var myLabel = UILabel()
for i in 0...4 {
myLabel = UILabel(frame: CGRect(x: 0, y: 0, width: fullSize.width, height: 40))
myLabel.center = CGPoint(x: fullSize.width * (0.5 + CGFloat(i)),y: fullSize.height * 0.2)
myLabel.font = UIFont(name: "Helvetica-Light", size: 48.0)
myLabel.textAlignment = .center
myLabel.text = "\(i + 1)"
myScrollView.addSubview(myLabel)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let page = Int(scrollView.contentOffset.x / scrollView.frame.size.width)
pageControl.currentPage = page
}
func pageChanged(sender: UIPageControl) {
var frame = myScrollView.frame
frame.origin.x = frame.size.width * CGFloat(sender.currentPage)
frame.origin.y = 0
myScrollView.scrollRectToVisible(frame, animated:true)
}
}
Источник: исходный код отсюда