首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用UIPageControl创建多个视图?

如何使用UIPageControl创建多个视图?
EN

Stack Overflow用户
提问于 2009-11-30 01:36:22
回答 4查看 30.9K关注 0票数 10

我需要在我的应用程序中使用UIPagecontrol,但我不确定如何开始。我是一个初学者,苹果给我的例子非常复杂。所有我需要的是他们中的每一个不同的看法3页。

EN

回答 4

Stack Overflow用户

发布于 2009-11-30 02:36:09

您将希望使用UIScrollView,然后将UIPageControl定位在其上。然后将每个页面放入滚动视图,并为其打开分页。这样,每次“轻拍”都会将滚动视图上移一页。

现在,将视图控制器指定为滚动视图的代理,观察scrollViewDidEndScrollAnimation,并使用contentOffset确定哪个页面是当前页面。

票数 22
EN

Stack Overflow用户

发布于 2011-09-14 20:36:48

基于Ben Gottlieb相当出色的正确答案,我得到了我想要的。下面是我用来实现它的代码:

.h

代码语言:javascript
复制
@interface MyViewController : UIViewController <UIScrollViewDelegate> {
}
@property (nonatomic, retain) UIPageControl *helpPageCon;

.m

代码语言:javascript
复制
@synthesize helpPageCon;

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    CGRect frame = [[UIScreen mainScreen] applicationFrame];
    float roundedValue = round(scrollView.contentOffset.x / frame.size.width);
    self.helpPageCon.currentPage = roundedValue;    
}

- (void)viewDidLoad
{
    UIScrollView *scrollView = [[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height-50)] autorelease];
    scrollView.contentSize = CGSizeMake(frame.size.width*5, frame.size.height-50);
    [scrollView setPagingEnabled:YES];
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.delegate = self;
    [self.view addSubview:scrollView];

    CGRect frame = [[UIScreen mainScreen] applicationFrame];
    self.helpPageCon = [[[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, 50)] autorelease];
    self.helpPageCon.center = CGPointMake(frame.size.width/2, frame.size.height-75);
    self.helpPageCon.numberOfPages = 5;
    [self.view addSubview:self.helpPageCon];
}
- (void)dealloc
{
    [super dealloc];
    [helpPageCon release];
}
票数 15
EN

Stack Overflow用户

发布于 2012-10-05 13:50:36

只需在水平滚动视图中依次添加3个视图,并在scrollview中启用分页,并在scrollView下方添加一个UIPageControl控件,借助scrollview的委托方法和pageview的Action方法,即可实现UIPageControl的基本工作

我使用contentoffset来查找当前页面

代码语言:javascript
复制
 // scrollview delegate

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {

    CGFloat pageWidth = mainScroll.frame.size.width;
    int page = floor((mainScroll.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    pageControl.currentPage=page;

  }

    // page view action method

  - (IBAction)pageControlInteracted:(UIPageControl *)sender {
      NSLog(@"%d",sender.currentPage);
      CGRect frame = mainScroll.frame;
      frame.origin.x = frame.size.width * sender.currentPage;
      frame.origin.y = 0;
      [mainScroll scrollRectToVisible:frame animated:YES];

   }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1816144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档