将按钮水平添加到页面控件

Posted

技术标签:

【中文标题】将按钮水平添加到页面控件【英文标题】:Add button horizontally to Page Control 【发布时间】:2016-10-05 07:59:58 【问题描述】:

我需要在 UIPageViewController 的页面控件中水平添加一个按钮。我已将我的 pageviewcontroller 作为子视图添加到 ViewController,默认情况下我正在获取页面控件。现在我想添加一个按钮,谁能建议任何添加按钮的方法?

提前致谢!!

_pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll
                                                          navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
                                                                        options:nil];

    self.view.backgroundColor = [[UIColor blackColor]colorWithAlphaComponent:0.5];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:
                                @"Main" bundle:[NSBundle mainBundle]];
    UIViewController *p1 = [storyboard instantiateViewControllerWithIdentifier:@"First"];
    UIViewController *p2 = [storyboard
                            instantiateViewControllerWithIdentifier:@"Second"];
    UIViewController *p3 = [storyboard
                            instantiateViewControllerWithIdentifier:@"Third"];
    UIViewController *p4 = [storyboard
                            instantiateViewControllerWithIdentifier:@"Fourth"];
    _Array = @[p1,p2,p3,p4];
    _pageViewController.dataSource = self;
    _pageViewController.delegate = self;
    [_pageViewController setViewControllers:@[_Array[0]]
                                  direction:UIPageViewControllerNavigationDirectionForward
                                   animated:NO
                                 completion:nil];

    [_pageViewController willMoveToParentViewController:self];
    [self addChildViewController:_pageViewController];
    [self.view addSubview:_pageViewController.view];
    [self.view sendSubviewToBack:self.pageViewController.view];    
    [_pageViewController didMoveToParentViewController:self];

【问题讨论】:

显示你到目前为止尝试过的内容.. 在与页面控件相同的行中,我想使用一个按钮。 你可以用collectionView代替,pageViewController其实是用来添加VC的.. 我必须使用 pageviewcontroller 来完成 i think you are looking for this kind of functionality 看看。 【参考方案1】:

我相信这就是您要找的。他详细解释了如何在页面视图控制器视图的“顶部”添加按钮。您可以在添加页面视图控制器后执行此操作,您可以使用 sendSubviewToBack 方法来确保按钮保持在前台,同时您将能够在页面视图控制器的不同视图控制器之间滑动。看看here

【讨论】:

抱歉,我在尝试您的代码时看不到按钮 你把页面视图控制器放到后面了吗? [self.view sendSubviewToBack:self.pageViewController.view];是的,但无法查看按钮 如何添加按钮和浏览器控制器? 在父视图控制器而不是页面视图控制器中。我也相信在上面的例子中他以编程方式添加了 pageviewcontroller【参考方案2】:

你可以提取页面控制所在的视图,然后你可以做任何你想做的事情。下面是提取页面控件视图的代码:

NSArray *subviews = self.pageController.view.subviews;

for (int i=0; i<[subviews count]; i++) 
    if ([[subviews objectAtIndex:i] isKindOfClass:[UIPageControl class]]) 
        self.pageControl = (UIPageControl *)[subviews objectAtIndex:i];
    

UIView *pageControlBaseView = [[UIView alloc] initWithFrame:CGRectMake(0,60,100, 40)];
[pageControlBaseView addSubview:self.pageControl];
self.pageControl.pageIndicatorTintColor = [UIColor redcolor];
self.pageControl.currentPageIndicatorTintColor = [UIColor greencolor];
[self.view addSubview:pageControlBaseView];

如果您需要更清晰的说明,请告诉我。

【讨论】:

以上是关于将按钮水平添加到页面控件的主要内容,如果未能解决你的问题,请参考以下文章

控件实现点击预览图片更改页面背景图片的效果

如何更改水平滚动视图中图像按钮的宽度?

axure中怎样让一个控件链接到两个不同的页面

将标签页动态添加到页面控件并嵌入表单?

几个ui显示在一个窗口里

将“添加到购物车”按钮重定向到 Magento 中的不同自定义页面/在 Magento 的产品页面中添加新按钮