如何在iPad中正确设置UIPageControl大小

时间:2012-12-27 23:03:55

标签: uiscrollview uipagecontrol

我的iPad应用程序中有一个UIScrollView和一个UIPageControl。我把它们放在.xib文件中。我的应用仅支持横向视图。

我尝试在代码中设置宽度和高度,它看起来永远不会正确。我有一个非常简单的案例,每页有5页设置不同的颜色背景,以确保我的页面看起来正确,但他们从不这样做,颜色重叠,无论我做什么。

所以我的问题是:

  1. 如何在代码中设置大小(viewDidLoad?)?
  2. 我是否需要设置UIScrollView和UIPageControl的大小?
  3. 提前致谢。

2 个答案:

答案 0 :(得分:0)

当您使用xib时,为什么要使用代码设置宽度和高度。而且你所面临的问题我认为,因为自动化只是尝试修改这个希望它会起作用。

答案 1 :(得分:0)

请检查以下代码。在这里,我使用代码完成了所有工作。希望它可以帮到你。

int numberOfPages = 5 ;

UIScrollView *scrollQuestionList = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height - 70.0)];
scrollQuestionList.contentSize = CGSizeMake(numberOfPages*scrollQuestionList.frame.size.width, scrollQuestionList.frame.size.height);
[self.view addSubview:scrollQuestionList];
scrollQuestionList.backgroundColor = [UIColor clearColor];
scrollQuestionList.delegate = self;
scrollQuestionList.showsHorizontalScrollIndicator = NO;
scrollQuestionList.pagingEnabled = YES;

CGFloat x = 0.0;

tagForBtns = 0;

for (int i = 1; i <= numberOfPages; i++) 
{
    UIView *contentView = [[[UIView alloc] initWithFrame:CGRectMake(x, 0.0, scrollQuestionList.frame.size.width, scrollQuestionList.frame.size.height)] autorelease];

    if (i%2 == 0)
    {
        [contentView setBackgroundColor:[UIColor grayColor]];
    }
    else
    {
        [contentView setBackgroundColor:[UIColor cyanColor]];
    }

    [scrollQuestionList addSubview:contentView];
    x+= scrollQuestionList.frame.size.width;
}
UIPageControl *pageCntrl = [[UIPageControl alloc] initWithFrame:CGRectMake(0.0, self.view.frame.size.height - 70.0, self.view.frame.size.width, 25.0)];
pageCntrl.numberOfPages = numberOfPages;
pageCntrl.backgroundColor = [UIColor clearColor];
[pageCntrl addTarget:self action:@selector(clickedPageControl:) forControlEvents:UIControlEventValueChanged];
pageCntrl.currentPage = 0;    
[self.view addSubview:pageCntrl];