增加 UIPageControl 指示点之间的间距

Posted

技术标签:

【中文标题】增加 UIPageControl 指示点之间的间距【英文标题】:Increase spacing between indicator dots of UIPageControl 【发布时间】:2015-06-29 20:55:09 【问题描述】:

所以我正在定制 UIPageControl(Apple 真的不容易做到这一点),我想知道是否有办法增加/减少指示点之间的空间。

我一直在使用这段代码来获取 UIPageControl

var pageControlMaybe: UIPageControl?

for (var i = 0; i < subviews.count; i++) 
    if (subviews[i] is UIPageControl) 
        pageControlMaybe = subviews[i] as? UIPageControl
        break
    

但现在我想知道是否有一种简单的方法可以更改间距?我可以通过变换调整点的大小

pageControlMaybe?.transform = CGAffineTransformMakeScale(1.4, 1.4)

但这也增加了它们之间的间距。理想情况下,它会保持点大小并减少它们之间的空间。

【问题讨论】:

【参考方案1】:

第一个缩放页面控件

让比例:CGFloat = 1.5

pageControl.transform = CGAffineTransform.init(scaleX: scale, y: scale)

这也将缩放每个点,因此您可以使用以下代码缩放每个点

for dot in pageControl.subviews
    dot.transform = CGAffineTransform.init(scaleX: 1/scale, y: 1/scale)

有点hacky但有效

【讨论】:

【参考方案2】:

正如some other times 的回答,没有办法做到这一点。我建议您使用像 FXPageControl 这样的第三方控件并使用此属性:

@property (nonatomic, assign) CGFloat dotSpacing;

【讨论】:

@tbondwilkinson 仍然不是 xD

以上是关于增加 UIPageControl 指示点之间的间距的主要内容,如果未能解决你的问题,请参考以下文章

在 UIPageViewController 的 UIPageControl 中增加指示器的大小

uipagecontrol 指示器(点)问题

UIpageControl 指示点

UIPageControl 指示点在页面更改时不会更改

如何以不同的方式设置 UIPageControl 的当前页面指示点的样式?

使用 UIPageControl 减小点大小或填充以适应屏幕上的所有页面指示器