本文主要是介绍How to remove the bottom gap of UIPageViewController,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文地址:http://stackoverflow.com/questions/19935887/how-to-remove-the-bottom-gap-of-uipageviewcontroller
| | I am using UIPageViewController to show images full screen, the UIViewController which is added to UIPageController as a sub view / child has the images being showed using ImageView. Problem is the images arent comming fullscreen, instead the pagecontrol view's donts are appearing at the bottom and that space is completely wasted. Please check the image attached.  Here is the code self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];self.pageController.dataSource = self;
[[self.pageController view] setFrame:[[self view] bounds]];NewsItemViewController *initialViewController = [self viewControllerAtIndex:0];NSArray *viewControllers = [NSArray arrayWithObject:initialViewController];[self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];[self addChildViewController:self.pageController];
[[self view] addSubview:[self.pageController view]];
[self.pageController didMoveToParentViewController:self]; Here NewsItemViewController is UIViewController showing images and some text and The MainViewController implements UIPageViewControllerDataSource protocol and necessary methods in MainViewController. I believe there has to be a way to do show the things in full screen. * Also the MainViewController is a part of a storyboard if that matters. |
解决方法1://注:隐藏
UIViewPageController的字view(UIPageControl),然后调整view的大小。
28 down vote accepted | Finally got the solution myself I just hide the page control from UIViewPageController and then extended the size of the UIPageViewController to cover up the gap left due to absense of page control. NSArray *subviews = self.pageController.view.subviews;
UIPageControl *thisControl = nil;
for (int i=0; i<[subviews count]; i++) {if ([[subviews objectAtIndex:i] isKindOfClass:[UIPageControl class]]) {thisControl = (UIPageControl *)[subviews objectAtIndex:i];}
}thisControl.hidden = true;
self.pageController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height+40); | answered Nov 13 '13 at 8:59 | |
解决方法2:
Curious. The docs say:
If both of the methods in “Supporting a Page Indicator” are implemented and the page view controller’s transition style is UIPageViewControllerTransitionStyleScroll, a page indicator is visible.
Those two methods are: //注:就是不重写下面这里两个方法
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController {
}- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController {
}
Are you implementing these two data source methods? If so, perhaps if you remove them you won't have to manually remove the page control (dots)? A quick test would be to change the
UIPageViewControllerTransitionStyleScroll
to
UIPageViewControllerTransitionStylePageCurl
and see if the page control indicator dots go away. (After commenting out your hide method, of course.)
这篇关于How to remove the bottom gap of UIPageViewController的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!