导航栏中的页面指示符和标题iOS目标C.

时间:2014-10-31 09:54:08

标签: ios objective-c navigationbar pagecontrol

我想创建一个导航栏,其中我有pageControl以及导航栏中的标题,就像推特iOS应用包含的那样,我通过设置

来获得它们
self.navigationItem.Title = @"Home";

并通过创建PageControl的实例并将其中心设置为导航栏的中心并使用UIPageControl代理实现其导航检测来实​​现UINavigationController's。但问题是pageControl和标题是相互重叠的..如何设置它,标题应出现在页面顶部指示器上。以下是pageControl

的定位代码
self.navigationController.delegate = self;  
CGSize navBarSize = self.navigationController.navigationBar.bounds.size;  
CGPoint origin = CGPointMake( navBarSize.width/2, navBarSize.height/2 );  
self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(origin.x, origin.y,
                                                                   0, 0)];  
[self.pageControl setNumberOfPages:3];  
[self.navigationController.navigationBar addSubview:self.pageControl];

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
int index = [self.navigationController.viewControllers indexOfObject:viewController];  
self.pageControl.currentPage = index;  }

1 个答案:

答案 0 :(得分:0)

我想通了,两个(标题和pageControl)相互重叠,所以我只是更改了pageControl的Y轴和

self.navigationController.delegate = self;  
CGSize navBarSize = self.navigationController.navigationBar.bounds.size;  
CGPoint origin = CGPointMake( navBarSize.width/2, navBarSize.height/2 );  
self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(origin.x, origin.y+45,
                                                               0, 0)]; //Here added 45 to Y and it did the trick 
[self.pageControl setNumberOfPages:3];  
[self.navigationController.navigationBar addSubview:self.pageControl];

- (void)navigationController:(UINavigationController *)navigationController     willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
int index = [self.navigationController.viewControllers indexOfObject:viewController];  
self.pageControl.currentPage = index;  }