增加UIPageViewController的UIPageControl中指示器的大小
Increase the size of the indicator in UIPageViewController's UIPageControl
是否可以在 UIPageViewController
中增加指标的大小?
我有这个:
我的要求是:
您可以使用 UIPageControl
并像这样缩放它:
@IBOutlet weak var pageControl: UIPageControl!
override func viewDidLoad() {
super.viewDidLoad()
pageControl.transform = CGAffineTransform(scaleX: 2, y: 2); //set value here
}
问题是你的点之间的 space 也会增加。如果你想用你的点进行准确的设计,你必须使用 3party 控件:https://www.cocoacontrols.com/
缩放页面控件会缩放点,但也会缩放它们之间的间距。
pageControl.transform = CGAffineTransform(scaleX: 2, y: 2)
如果要保持点之间的间距相同,则需要单独变换点:
pageControl.subviews.forEach {
[=11=].transform = CGAffineTransform(scaleX: 2, y: 2)
}
但是,如果您在 viewDidLoad
中执行此操作,则转换在视图出现时已被重置,因此您应该在 viewDidLayoutSubviews
中执行此操作...
override func viewDidLayoutSubviews() {
pageControl.subviews.forEach {
[=12=].transform = CGAffineTransform(scaleX: 2, y: 2)
}
}
首先,在 viewDidLoad() 内部创建一个 uiPageControl 对象,然后根据您的要求设置它的 y 位置,然后使用 CAAffiniteTransform 应用所需的比例,如下所示:
var pageControl = UIPageControl()
pageControl.pageIndicatorTintColor = UIColor.gray
pageControl.currentPageIndicatorTintColor = UIColor.yellow
pageControl.transform = CGAffineTransform(scaleX: 1.3, y: 1.3) // set dot scale of pageControl
pageControl.backgroundColor = UIColor.darkGray
pageControl.numberOfPages = 3
pageControl.center = self.view.center
self.view.addSubview(pageControl) // add pageControl to view
pageControl.layer.position.y = self.view.frame.height - 100; // y position of the pageControl
为了swift 2.0增加或减少pageControl Indicator的尺寸
self.pageControl.transform = CGAffineTransformMakeScale(0.8, 0.8)
或
self.pageControl.transform = CGAffineTransformMakeScale(1.3, 1.3)
向页面控制器添加扩展
extension UIPageControl {
func customPageControl(dotWidth: CGFloat) {
for (pageIndex, dotView) in self.subviews.enumerated() {
dotView.frame.size = CGSize.init(width: dotWidth, height: dotWidth)
}
}
}
Swift 4、4.2 和 5
先创建一个页面控件的outlet
@IBOutlet weak var pageControl: UIPageControl!
如果要保持原来的间距。
override func viewDidLayoutSubviews() {
pageControl.transform = CGAffineTransform(scaleX: 2, y: 2)
}
如果不想保持原来的间距。
override func viewDidLayoutSubviews() {
pageControl.subviews.forEach {
[=12=].transform = CGAffineTransform(scaleX: 2, y: 2)
}
}
是否可以在 UIPageViewController
中增加指标的大小?
我有这个:
我的要求是:
您可以使用 UIPageControl
并像这样缩放它:
@IBOutlet weak var pageControl: UIPageControl!
override func viewDidLoad() {
super.viewDidLoad()
pageControl.transform = CGAffineTransform(scaleX: 2, y: 2); //set value here
}
问题是你的点之间的 space 也会增加。如果你想用你的点进行准确的设计,你必须使用 3party 控件:https://www.cocoacontrols.com/
缩放页面控件会缩放点,但也会缩放它们之间的间距。
pageControl.transform = CGAffineTransform(scaleX: 2, y: 2)
如果要保持点之间的间距相同,则需要单独变换点:
pageControl.subviews.forEach {
[=11=].transform = CGAffineTransform(scaleX: 2, y: 2)
}
但是,如果您在 viewDidLoad
中执行此操作,则转换在视图出现时已被重置,因此您应该在 viewDidLayoutSubviews
中执行此操作...
override func viewDidLayoutSubviews() {
pageControl.subviews.forEach {
[=12=].transform = CGAffineTransform(scaleX: 2, y: 2)
}
}
首先,在 viewDidLoad() 内部创建一个 uiPageControl 对象,然后根据您的要求设置它的 y 位置,然后使用 CAAffiniteTransform 应用所需的比例,如下所示:
var pageControl = UIPageControl()
pageControl.pageIndicatorTintColor = UIColor.gray
pageControl.currentPageIndicatorTintColor = UIColor.yellow
pageControl.transform = CGAffineTransform(scaleX: 1.3, y: 1.3) // set dot scale of pageControl
pageControl.backgroundColor = UIColor.darkGray
pageControl.numberOfPages = 3
pageControl.center = self.view.center
self.view.addSubview(pageControl) // add pageControl to view
pageControl.layer.position.y = self.view.frame.height - 100; // y position of the pageControl
为了swift 2.0增加或减少pageControl Indicator的尺寸
self.pageControl.transform = CGAffineTransformMakeScale(0.8, 0.8)
或
self.pageControl.transform = CGAffineTransformMakeScale(1.3, 1.3)
向页面控制器添加扩展
extension UIPageControl {
func customPageControl(dotWidth: CGFloat) {
for (pageIndex, dotView) in self.subviews.enumerated() {
dotView.frame.size = CGSize.init(width: dotWidth, height: dotWidth)
}
}
}
Swift 4、4.2 和 5
先创建一个页面控件的outlet
@IBOutlet weak var pageControl: UIPageControl!
如果要保持原来的间距。
override func viewDidLayoutSubviews() {
pageControl.transform = CGAffineTransform(scaleX: 2, y: 2)
}
如果不想保持原来的间距。
override func viewDidLayoutSubviews() {
pageControl.subviews.forEach {
[=12=].transform = CGAffineTransform(scaleX: 2, y: 2)
}
}