Him*_*shu 18 ios uipageviewcontroller swift
我已经实现了UIPageViewController的数据源方法,但仍然没有在我的iOS应用程序底部获得点.任何人都有任何解决方案,使我的应用程序上出现点?
Kli*_*akM 25
使用时UIPageViewController,默认情况下应该可见.我猜你有一个白色的背景,点也是白色的,所以你只是看不到它们.
尝试更改点颜色:
Swift 2.2:
var appearance = UIPageControl.appearance(whenContainedInInstancesOf: [UIPageViewController.self])
appearance.pageIndicatorTintColor = UIColor.red
appearance.currentPageIndicatorTintColor = UIColor.red
Run Code Online (Sandbox Code Playgroud)
Swift 3.0:
var appearance = UIPageControl.appearanceWhenContainedIn(UIPageViewController.self, nil)
appearance.pageIndicatorTintColor = UIColor.red
appearance.currentPageIndicatorTintColor = UIColor.red
Run Code Online (Sandbox Code Playgroud)
Swift 4.0:
var appearance = UIPageControl.appearance(whenContainedInInstancesOf: [UIPageViewController.self])
appearance.pageIndicatorTintColor = UIColor.red
appearance.currentPageIndicatorTintColor = UIColor.red
Run Code Online (Sandbox Code Playgroud)
如果它没有帮助,请确保您使用UIPageViewControllerTransitionStyleScroll过渡样式.
还要确保从UIPageViewControllerDataSource:presentationCount(for:)和presentationIndex(for:).实现委托.
Eri*_*ner 24
对于Swift 3.0,您需要:
private func setupPageControl() {
let appearance = UIPageControl.appearance()
appearance.pageIndicatorTintColor = UIColor.gray
appearance.currentPageIndicatorTintColor = UIColor.white
appearance.backgroundColor = UIColor.darkGray
}
func presentationCount(for pageViewController: UIPageViewController) -> Int {
setupPageControl()
return self.images.count
}
func presentationIndex(for pageViewController: UIPageViewController) -> Int {
return 0
}
Run Code Online (Sandbox Code Playgroud)
Jos*_*osh 12
如果有人仍在搜索这类问题,我找到了一个关于添加页面点的好教程UIPageViewController.它至少对我有用.
http://www.seemuapps.com/page-view-controller-tutorial-with-page-dots
这是这个问题的相关部分:
确保您具有适当的委托和数据源
import UIKit
class PageViewController: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource
Run Code Online (Sandbox Code Playgroud)
要添加页面点指示,请添加pageControl,如下所示:
创建一个实例UIPageControl.
var pageControl = UIPageControl()
Run Code Online (Sandbox Code Playgroud)
现在添加以下功能.这将页面控件定位在屏幕的底部.当前页面指示将为黑色,其余指示将为白色.您可以更改这些以适合您的应用程序的设计.
func configurePageControl() {
pageControl = UIPageControl(frame: CGRect(x: 0,y: UIScreen.main.bounds.maxY - 50,width: UIScreen.main.bounds.width,height: 50))
self.pageControl.numberOfPages = orderedViewControllers.count
self.pageControl.currentPage = 0
self.pageControl.alpha = 0.5
self.pageControl.tintColor = UIColor.black
self.pageControl.pageIndicatorTintColor = UIColor.white
self.pageControl.currentPageIndicatorTintColor = UIColor.black
self.view.addSubview(pageControl)
}
Run Code Online (Sandbox Code Playgroud)
现在viewDidLoad()添加以下两行:
self.delegate = self
configurePageControl()
Run Code Online (Sandbox Code Playgroud)
并添加以下功能,这将确保页面控制指示器在滚动时更改为正确的页面.
// MARK: Delegate functions
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
let pageContentViewController = pageViewController.viewControllers![0]
self.pageControl.currentPage = orderedViewControllers.index(of: pageContentViewController)!
}
Run Code Online (Sandbox Code Playgroud)
使用presentationCountForPageViewController和presentationIndexForPageViewControllerdatasource方法然后显示UIPageViewController点,
SWIFT代码:
private func setupPageControl() {
let appearance = UIPageControl.appearance()
appearance.pageIndicatorTintColor = UIColor.grayColor()
appearance.currentPageIndicatorTintColor = UIColor.whiteColor()
appearance.backgroundColor = UIColor.darkGrayColor()
}
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int
{
setupPageControl()
return self.arrimg.count
}
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int
{
return 0
}
Run Code Online (Sandbox Code Playgroud)
objective-C代码:
- (void) setupPageControl
{
[[UIPageControl appearance] setPageIndicatorTintColor: [UIColor lightGrayColor]];
[[UIPageControl appearance] setCurrentPageIndicatorTintColor: [UIColor blackColor]];
[[UIPageControl appearance] setTintColor: [UIColor blackColor]];
}
- (NSInteger) presentationCountForPageViewController: (UIPageViewController *) pageViewController
{
[self setupPageControl];
return [arrimg count];
}
- (NSInteger) presentationIndexForPageViewController: (UIPageViewController *) pageViewController
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它为我工作,希望它有所帮助
Swift 4和Swift 4.1
private func changeIndicatorColor() {
let appearance = UIPageControl.appearance(whenContainedInInstancesOf: [YourUIPageViewController.self])
appearance.pageIndicatorTintColor = .lightGray
appearance.currentPageIndicatorTintColor = .black
}
Run Code Online (Sandbox Code Playgroud)
小智 5
在Xcode 7中使用基于页面的应用程序模板时,将以下代码插入ModelController类即可:
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
setupPageControl()
return self.pageData.count
}
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
return 0
}
private func setupPageControl() {
let appearance = UIPageControl.appearance()
appearance.pageIndicatorTintColor = UIColor.grayColor()
appearance.currentPageIndicatorTintColor = UIColor.whiteColor()
appearance.backgroundColor = UIColor.darkGrayColor()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17741 次 |
| 最近记录: |