如何在PageViewController上调整ViewController的大小

tmrex7

我正在尝试使用pageviewcontroller的应用程序。

我添加了一个viewcontroller作为childviewcontoller。
但是如图所示,红色区域显示在顶部。
我该如何摆脱呢?

页面浏览控制器

提前致谢。

增加的代码

#import <UIKit/UIKit.h>
#import "ChildViewController.h"

@interface ViewController :      UIViewController<UIPageViewControllerDelegate,UIPageViewControllerDataSource>
{
    UIPageViewController *pageViewController;
    int pageIndex;
    int pageMax;
}
- (ChildViewController*)setChildViewController;
- (int)getPageIndex:(ChildViewController*)vc;

@end



#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor redColor];
    
    //Init Page
    pageIndex = 5;
    
    //Max Page Num
    pageMax = 10;
    
    //Declare UIPageViewController
    pageViewController = [[UIPageViewController alloc]
                      initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl     //アニメーション
                          navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal //水平
                      options:nil];

    //Set delegate and datasource
    pageViewController.delegate = self;
    pageViewController.dataSource = self;
    pageViewController.view.frame = self.view.frame;
    
    //Instantiate VC
    UIViewController* vc = [self setChildViewController];

    //Set VC
    NSArray *viewControllers = [NSArray arrayWithObject:vc];
    [pageViewController setViewControllers:viewControllers
                             direction:UIPageViewControllerNavigationDirectionForward
                              animated:NO
                            completion:NULL];

    [self addChildViewController:pageViewController];

    [self.view addSubview:pageViewController.view];

}

//Instantiate VC
- (ChildViewController*)setChildViewController{
    ChildViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ChildViewController"];
    //ShowViewController* vc = [[ShowViewController alloc] init];
    vc.pageIndex = pageIndex;
    return vc;
}

/*
 * Back
 */
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
  viewControllerBeforeViewController:(UIViewController *)viewController
{

    //Get Current Index
    pageIndex = [self getPageIndex:(ChildViewController*)viewController];

    //MIN
    if (1 == pageIndex) {
        return nil;
    }

    pageIndex--;


    //Return VC
    ChildViewController* vc = [self setChildViewController];

    return vc;
}


/*
 * Forward
 */
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
   viewControllerAfterViewController:(UIViewController *)viewController
{
    //Get Current Index
    pageIndex = [self getPageIndex:(ChildViewController*)viewController];

    //MAX
    if (pageMax == pageIndex) {
        return nil;
    }

    pageIndex++;

    ChildViewController* vc = [self setChildViewController];

    return vc;
}

//Finish Animation
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:    (BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed{

    //Set Page
    if (completed) {
        ChildViewController* vc = [previousViewControllers objectAtIndex:0];
        vc.pageIndex = pageIndex;
    }
}

/*
 * Get Current Page
 */
- (int)getPageIndex:(ChildViewController*)vc
{
    return vc.pageIndex;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


#import <UIKit/UIKit.h>

@interface ChildViewController : UIViewController
@property int pageIndex;
@property (retain, nonatomic) IBOutlet UILabel *pageLabel;

- (void)setIndex:(int)index;

@end


#import "ChildViewController.h"

@interface ChildViewController ()

@end

@implementation ChildViewController
@synthesize pageIndex;
@synthesize pageLabel;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    pageLabel.text = [NSString stringWithFormat:@"Page %d",pageIndex];
    self.view.backgroundColor = [UIColor greenColor];
}

//Keep Current Page
- (void)setIndex:(int)index{
    pageIndex = index;
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
阿努拉格·索尼

您可以尝试以下代码行,这可能可以解决您的问题,如果仍然遇到问题,请评论我

 UIPageViewController *pageViewController
[pageViewController.view setFrame:self.view.frame];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在iOS上调整位图的大小

来自分类Dev

如何在Windows上调整所选jQuery下拉列表的大小

来自分类Dev

如何在导航弹出窗口上调整UIPopoverPresentationController的大小?

来自分类Dev

如何在Excel WebBrowser控件上调整图像大小

来自分类Dev

如何在Matlab上调整图形轴的大小?

来自分类Dev

如何在Android上调整Yuv图像的大小

来自分类Dev

如何在KendoUI / Angular Window上调整Highcharts图表的大小

来自分类Dev

如何在 Xubuntu 上调整 Xfce 4 面板的大小?

来自分类Dev

如何在横向上调整自定义UITableView分隔符的大小并防止消失

来自分类Dev

如何在每个维度上调整体积图像的大小或形状?

来自分类Dev

如何在<li>网格上调整图像和文本的大小并居中?

来自分类Dev

flexbox如何在保持高度的同时使项目在水平和垂直方向上调整大小

来自分类Dev

如何在gnome的窗口标题栏上调整字体大小?

来自分类Dev

如何在Windows 7(64位)上调整“用户”文件夹的大小

来自分类Dev

如何在系统设置的硬盘上调整零件大小并对其进行分区?

来自分类Dev

如何在桌面上调整“文件夹视图”窗口小部件的大小?

来自分类Dev

flexbox如何在保持高度的同时使项目在水平和垂直方向上调整大小

来自分类Dev

如何在iSight上调整相机曝光?

来自分类Dev

如何从PageViewController访问ViewController组件

来自分类Dev

如何阻止时间UILabel在每个时间增量上调整大小?

来自分类Dev

如何在新安装的系统上调整分区大小,以便为其他操作系统腾出空间?

来自分类Dev

在TableView上调整图像大小

来自分类Dev

在Firefox上调整遮罩大小

来自分类Dev

如何在JavaFX堆积面积图上调整范围?

来自分类Dev

如何在Android Wear上调整下巴的布局?

来自分类Dev

如何在Skype上调整网络摄像头图像?

来自分类Dev

如何在Android上调整键盘焦点布局?

来自分类Dev

如何在QMainWindow上调整窗户的装饰尺寸?

来自分类Dev

如何在Skype上调整网络摄像头图像?

Related 相关文章

  1. 1

    如何在iOS上调整位图的大小

  2. 2

    如何在Windows上调整所选jQuery下拉列表的大小

  3. 3

    如何在导航弹出窗口上调整UIPopoverPresentationController的大小?

  4. 4

    如何在Excel WebBrowser控件上调整图像大小

  5. 5

    如何在Matlab上调整图形轴的大小?

  6. 6

    如何在Android上调整Yuv图像的大小

  7. 7

    如何在KendoUI / Angular Window上调整Highcharts图表的大小

  8. 8

    如何在 Xubuntu 上调整 Xfce 4 面板的大小?

  9. 9

    如何在横向上调整自定义UITableView分隔符的大小并防止消失

  10. 10

    如何在每个维度上调整体积图像的大小或形状?

  11. 11

    如何在<li>网格上调整图像和文本的大小并居中?

  12. 12

    flexbox如何在保持高度的同时使项目在水平和垂直方向上调整大小

  13. 13

    如何在gnome的窗口标题栏上调整字体大小?

  14. 14

    如何在Windows 7(64位)上调整“用户”文件夹的大小

  15. 15

    如何在系统设置的硬盘上调整零件大小并对其进行分区?

  16. 16

    如何在桌面上调整“文件夹视图”窗口小部件的大小?

  17. 17

    flexbox如何在保持高度的同时使项目在水平和垂直方向上调整大小

  18. 18

    如何在iSight上调整相机曝光?

  19. 19

    如何从PageViewController访问ViewController组件

  20. 20

    如何阻止时间UILabel在每个时间增量上调整大小?

  21. 21

    如何在新安装的系统上调整分区大小,以便为其他操作系统腾出空间?

  22. 22

    在TableView上调整图像大小

  23. 23

    在Firefox上调整遮罩大小

  24. 24

    如何在JavaFX堆积面积图上调整范围?

  25. 25

    如何在Android Wear上调整下巴的布局?

  26. 26

    如何在Skype上调整网络摄像头图像?

  27. 27

    如何在Android上调整键盘焦点布局?

  28. 28

    如何在QMainWindow上调整窗户的装饰尺寸?

  29. 29

    如何在Skype上调整网络摄像头图像?

热门标签

归档