【问题标题】:Simple Page Control简单的页面控制
【发布时间】:2011-10-08 18:13:41
【问题描述】:

我有一个在两个视图之间切换的滚动视图。在 viewDidLoad 中设置了两个视图。我想要一个在选择相应视图时切换的页面控件。

我看过的所有教程都非常复杂。

- (void)viewDidLoad {

    [super viewDidLoad];

    scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, scrollView.frame.size.height);
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.showsVerticalScrollIndicator = NO;
    scrollView.scrollsToTop = NO;
    scrollView.delegate = self;

    CGRect pageFrame = CGRectMake(0, 0, scrollView.bounds.size.width, scrollView.bounds.size.height);
    scrollView.contentSize = CGSizeMake(pageFrame.size.width * 2, pageFrame.size.height);
    scrollView.pagingEnabled = YES;

    view1.frame = pageFrame;
    [scrollView addSubview:view1];


    pageFrame.origin.x += pageFrame.size.width;
    view2.frame = pageFrame;
    [scrollView addSubview:view2];
}

- (IBAction)changePage:(id)sender {

}

【问题讨论】:

    标签: iphone objective-c ios4 iphone-sdk-3.0


    【解决方案1】:

    当用户点击页面控件以移动到下一页或上一页时,该控件会发送 UIControlEventValueChanged 事件以供委托处理。然后,委托可以评估 currentPage 属性以确定要显示的页面。页面控件在任一方向仅前进一页。

    在控制器的 changePage 方法中为 ValueChanged 操作设置页面控件的委托。

    - (IBAction)changePage:(id)sender {
       UIPageControl *pageControl = (UIPageControl *)sender;
       NSInteger currentPage = pageControl.currentPage;
       CGPoint offset = CGPointMake(currentPage * scrollView.frame.size.width, 0);
       [scrollView setContentOffset:offset animated:YES];
    }
    

    【讨论】:

      【解决方案2】:

      int 设置为tagtag 属性以跟踪按下了哪个。

      -(IBAction)changePage:(id)sender {
         UIButton *button = (UIButton *) sender;
         CGPoint offset = view1.frame.origin;
         if (button.tag == kConstantForSecondPage) {
            offset = view2.frame.origin;
         }
         [scrollView setContentOffset:offset animated:YES];
       }
      

      【讨论】:

      • 我不太了解这个概念。我在滚动视图中有两个视图。按钮的用途是什么?
      • 你想要一个 IBAction - 所以我为你写了一个。你不想要一个按钮吗? - 不管怎样,代码告诉你如何滚动。
      • 嗯,我有一个滚动视图,加载并使用两个视图,我只是想要一个页面控件也可以切换,只是不知道如何做到这一点。
      • 只需将UIPageControl 添加到您的scrollView 作为子视图。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 2014-03-07
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      相关资源
      最近更新 更多