以下に示すように、選択したページのドットを他のページよりもわずかに大きくする方法を見つけようとしています。
ページ1:
ページ2:
ドットの色、allドットのサイズ、背景などを変更できますが、特定のドットのサイズは変更できません現在のページ。
現在のページのみのドットサイズを変更するにはどうすればよいですか?
これはSwiftまたはObjective-Cです。
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
let x = targetContentOffset.pointee.x
pageControl.currentPage = Int(x / self.frame.width)
// on each dot, call the transform of scale 1 to restore the scale of previously selected dot
pageControl.subviews.forEach {
$0.transform = CGAffineTransform(scaleX: 1, y: 1)
}
// transform the scale of the current subview dot, adjust the scale as required, but bigger the scale value, the downward the dots goes from its centre.
// You can adjust the centre anchor of the selected dot to keep it in place approximately.
let centreBeforeScaling = self.pageControl.subviews[self.pageControl.currentPage].center
self.pageControl.subviews[self.pageControl.currentPage].transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
// Reposition using autolayout
self.pageControl.subviews[self.pageControl.currentPage].translatesAutoresizingMaskIntoConstraints = false
self.pageControl.subviews[self.pageControl.currentPage].centerYAnchor.constraint(equalTo: self.pageControl.subviews[0].centerYAnchor , constant: 0)
self.pageControl.subviews[self.pageControl.currentPage].centerXAnchor.constraint(equalTo: self.pageControl.subviews[0].centerXAnchor , constant: 0)
// self.pageControl.subviews[self.pageControl.currentPage].layer.anchorPoint = centreBeforeScaling
}