如何增加 UIPageControl 中的选定点。 (iOS 12.4,不重复)

How to increase selected dot in UIPageControl. (iOS 12.4, not duplicate)

请不要报告此问题。这个问题与关于 UIPageController 的另一个问题不相似!!!停止标志。仔细阅读。

我发现了很多关于 UIPageControl 的其他问题。但是关于 UIPageController 中所有点的每个问题。我只需要增加 1 个活动点的大小。例如我们有 4 个屏幕,当我在第一个屏幕上时,我想要第一个点 10px,其他 3 个点 5px。当我滚动到第二个屏幕时 -> 第二个点将是 10px,但第一个、第三个和第四个应该是 5px。

关于堆栈溢出的所有问题和其他关于增加所有点的资源。只增加当前dot的问题,此时激活

class PageControl: UIPageControl {

var pageCount: Int
init(pageCount: Int) {
    self.pageCount = pageCount
    super.init(frame: .zero)
    currentPage = 0
    numberOfPages = pageCount
    let image = Images.outlinedEllipse(size: CGSize(width: 1.0, height: 1.0), color: Colors.darkBlue)
    pageIndicatorTintColor = UIColor.init(patternImage: image!)
    currentPageIndicatorTintColor = UIColor.white

    subviews.forEach {
        [=11=].transform = CGAffineTransform(scaleX: 4, y: 4)
    }
}
required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}


public enum Images {
static func outlinedEllipse(size: CGSize, color: UIColor, lineWidth: CGFloat = 1.0) -> UIImage? {

    UIGraphicsBeginImageContextWithOptions(size, false, 0.5)
    guard let context = UIGraphicsGetCurrentContext() else {
        return nil
    }
    context.setStrokeColor(color.cgColor)
    context.setLineWidth(lineWidth)
    let rect = CGRect(origin: .zero, size: size).insetBy(dx: lineWidth * 1.5, dy: lineWidth * 1.5)
    context.addEllipse(in: rect)
    context.strokePath()
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return image
}

我试过这段代码,但没有用。不知道为什么。

拜托,有人可以帮忙吗?非常感谢!

我认为更改默认 UIPageControl 点视图的大小仍然是私有的 API iOS。我的建议是隐藏当前默认的圆点指标,自己实现一个新的,应该不难实现。

这是我对点控制的建议,您可以按照他的建议构建您的自定义点,活动点尺寸更大。

GitHub灵活页面控件: https://github.com/shima11/FlexiblePageControl

实现这一点的方法之一是拥有一个根视图控制器,它有一个包含 UIPageViewController 的容器视图,以及一个位于底部的 UIView,它包含您的自定义 dotsView。

RootViewController 和 UIPageViewController 的通信可以通过协议或弱引用完成。