我使用过一些以前的解决方案。来自 stackoverflow 的以下代码会有所帮助,但当前点不会显示比其余点大(尽管名为:“currentPageDot”的图像大于 UIImage(名为:“defaultPageDot”))。而且我不想在它们变大的时候扰乱它们的位置。我应该如何修改此代码以执行相同的操作。
它的外观:
它应该是什么样子:
import Foundation
import UIKit
class EnhancedPageControl: UIPageControl {
let activeImage:UIImage = UIImage(named: "currentPageDot")!
let inactiveImage:UIImage = UIImage(named: "defaultPageDot")!
override func awakeFromNib() {
super.awakeFromNib()
self.pageIndicatorTintColor = UIColor.clear
self.currentPageIndicatorTintColor = UIColor.clear
self.clipsToBounds = false
}
func updateDots() {
var i = 0
for view in self.subviews {
if let imageView = self.imageForSubview(view) {
if i == self.currentPage {
imageView.image = nil
imageView.image = self.activeImage
} else {
imageView.image = nil
imageView.image = self.inactiveImage
}
i = i + 1
} else {
var dotImage = self.inactiveImage
if i == self.currentPage {
dotImage = self.activeImage
}
view.clipsToBounds = false
view.addSubview(UIImageView(image:dotImage))
i = i + 1
}
}
}
fileprivate func imageForSubview(_ view:UIView) -> UIImageView? {
var dot:UIImageView?
if let dotImageView = view as? UIImageView {
dot = dotImageView
} else {
for foundView in view.subviews {
if let imageView = foundView as? UIImageView {
dot = imageView
break
}
}
}
return dot
}
}
最佳答案
尝试不更改图像,而是使用页面控制 subview 上的变换属性。像这样的事情
pageControl.subviews[pageControl.currentPage].transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
关于ios - 当前点的图像大于其余点的自定义页面控件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52164907/