【问题标题】:iOS UIPageControl change positioniOS UIPageControl 改变位置
【发布时间】:2015-07-10 10:16:48
【问题描述】:

我有一个PageViewController,我想更改UIPageControl 的位置(从屏幕底部到顶部)。

这是我的代码:

UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.backgroundColor = [UIColor whiteColor];

它有效,但点显示在底部,我想将它们显示在顶部。

我试过这个:

pageControl.frame = CGRectMake(0, 0, 100, 37);

 UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, 198, 37)];

我还尝试在Storyboard 中创建UIPageControl,在这种情况下,点显示在顶部,但点不显示当前页面位置。

编辑

Storyboard 的情况下,我像这样更新currentPage

- (PageContentViewController *)viewControllerAtIndex:(NSUInteger)index {
if (([self.pageImages count] == 0) || (index >= [self.pageImages count])) {
    return nil;
}

PageContentViewController *pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageContentViewController"];
pageContentViewController.pageIndex = index;

self.pageControl.currentPage = index;
return pageContentViewController;
}

但是index 会发疯,永远不要显示真实的currentPage

有什么想法吗?谢谢

【问题讨论】:

  • 在情节提要中设置的情况下,是否设置了UIPageControlcurrentPage属性?
  • @frankie 请看我的编辑
  • 是否有其他视图遮挡了您的页面控件?
  • 应该很直截了当,如果你在一个视图控制器上设置一个单独的UIPageControl作为出口的测试项目,你可以轻松地在任何地方设置框架并设置currentPage属性。 “index 疯了”是什么意思?你的插座连接正确吗?您是否尝试过设置 numberOfPages 属性以确保显示的点数正确?
  • 是的@Frankie,这正是我所做的。当我说“index 变得疯狂”时,我的意思是这些点永远不会显示正确的 index

标签: ios position frame uipageviewcontroller uipagecontrol


【解决方案1】:

你可以试试我做的(快速回答,但对于 obj-c 非常相似):

在处理分页的视图控制器中(具有 UIPageViewControllerDatasource 等的视图控制器) 我把它放在 viewDidLoad 中:

self.pageViewController.view.frame = CGRectMake(0, 30, self.view.frame.width, self.view.frame.size.height - 200)

现在 -200 值很重要,将其更改为您想要的任何值,以便内容更高或更低,并且默认的 PageControl 将保持不变

它不完全是你想要的,但可能会完成这项工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多