现在是背景为黑色的白点.如果我想用黑点做背景呢?

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController NS_AVAILABLE_IOS(6_0)
{
    return _imageArrays.count;
}// The number of items reflected in the page indicator.
- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController NS_AVAILABLE_IOS(6_0)
{
    return self.intCurrentIndex;
}// The selected item reflected in the page indicator.

推荐答案

我不相信你能操纵UIPageViewController的页面控件.我的解决方案:

我有一个"根"UIViewController,即UIPageViewControllerDelegate和UIPageViewControllerDataSource.

在这个根视图控制器上,我有@property (strong, nonatomic) IBOutlet UIPageControl *pageControl个.在相应的故事板笔尖中,我添加了一个UIPageControl,定位它,并选中"隐藏单个页面".如果我愿意,我也可以改变 colored颜色 .

然后,我在根视图控制器的viewDidLoad中添加以下内容:self.pageControl.numberOfPages = [self.features count]

我的根视图控制器也有@property (strong, nonatomic) UIPageViewController *pageViewController个.在实施过程中:

self.pageViewController = [[UIPageViewController alloc]
          initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll 
            navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal 
                          options:nil];


self.pageViewController.delegate = self;
DataViewController *startingViewController = [self viewControllerAtIndex:0 storyboard:self.storyboard];
NSArray *viewControllers = @[startingViewController];
[self.pageViewController setViewControllers:viewControllers
                                  direction:UIPageViewControllerNavigationDirectionForward
                                   animated:NO
                                 completion:NULL];
self.pageViewController.dataSource = self;      
[self addChildViewController:self.pageViewController];
[self.view addSubview:self.pageViewController.view];
self.pageViewController.view.frame = CGRectMake(0.0, 0.0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height + 10.0);
[self.pageViewController didMoveToParentViewController:self];
self.view.gestureRecognizers = self.pageViewController.gestureRecognizers;

(旁注:设置边框的那条线使UIPageViewController视图的高度超过屏幕大小,因此本机页面控件不再可见.我的应用程序仅限于纵向,仅限于iPhone,所以我在这里轻松一点.如果你需要处理旋转,你必须找到一种方法将本机页面控件保持在屏幕外.我使用auto layout进行编辑,但UIPageViewController创建了一组神奇的视图,其中包含一系列我找不到替代方法的autolayout掩码约束.)

无论如何然后,我添加一个额外的UIPageViewController委托方法,将新的非本机UIPageControl更改为当前选定的页面:

- (void)pageViewController:(UIPageViewController *)viewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
  if (!completed){return;}

  // Find index of current page
  DataViewController *currentViewController = (DataViewController *)[self.pageViewController.viewControllers lastObject];
  NSUInteger indexOfCurrentPage = [self indexOfViewController:currentViewController];
  self.pageControl.currentPage = indexOfCurrentPage;
}

虽然没有我想要的那么漂亮,但是苹果的API对于这个类来说并不十分优雅.

Objective-c相关问答推荐

反编译ARM64和理解分支目标边界

日期更改时的 UIDatePicker

自构建预编译头后文件已被修改

UIButton 标题更改为默认值

Objective-C 对象的列表 Select 器

常量的 k 前缀从何而来?

带有语法高亮的 UITextView

更改 UINavigationBar 字体属性?

静态 NSString 使用与内联 NSString 常量

UIRefreshControl - 在 iOS 7 中 pull 刷新

如何在 iPhone SDK 中使用自定义字体?

如何在表格视图中的两个单元格之间留出空间?

如何用 Java 开发 iPhone 应用程序?

如何在 Objective C 中将浮点数转换为 int?

主队列上的 performSelectorOnMainThread: 和 dispatch_async() 有什么区别?

为什么使用弱指针进行委托?

判断核心数据中是否存在对象的最快方法?

如何阻止 NSNotification 中的观察者调用两次?

Xcode 在调试时判断表达式

Facebook SDK 登录永远不会在 iOS 9 上回调我的应用程序