Системные константы в коде (7.0 и 16.0) - соответственно размер и расстояние, найденное для точки UIPageControl по умолчанию на iOS 12.
класс UIPageControl, чтобы его текущая точка была больше.
class CustomPageControl: UIPageControl {
override var currentPage: Int {
didSet {
updateDots()
}
}
func updateDots() {
let currentDot = subviews[currentPage]
let largeScaling = CGAffineTransform(scaleX: 3, y: 3)
subviews.forEach {
// apply the large scale of newly selected dot
// restore the normal scale of previously selected dot
$0.transform = $0 == currentDot ? largeScaling : .identity
}
}
}
Но результат преобразования не центрирован (красная точка должна быть выровнена с остальными):
Я пробовал (на iOS 12):
изменяяframe
или жеcenter
изcurrentDot
не имеет никакого эффектаизменяя преобразование, чтобы включитьtranslatedBy(x: CGFloat, y: CGFloat)
не имеет никакого эффектаизменение ограниченийкак здесь делает первый прыжок с точки:
currentDot.translatesAutoresizingMaskIntoConstraints = false
currentDot.centerYAnchor.constraint(equalTo: self.centerYAnchor, constant: 0)
currentDot.centerXAnchor.constraint(equalTo: self.centerXAnchor, constant: 0)