如何在单击 UIPageControl 的点时更改页面

How can I change the page on clicking the dots of UIPageControl(如何在单击 UIPageControl 的点时更改页面)
本文介绍了如何在单击 UIPageControl 的点时更改页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

这里我有一个 pagecontrol 效果很好,但是点击点它不会改变页面所以请帮助 changepage 的功能:

Here I have a pagecontrol which works good but on clicking on dot it doesn't change the page so please help in the function of changepage:

- (void)viewDidLoad {
    scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 420)];
    scrollView.delegate = self;
    [self.scrollView setBackgroundColor:[UIColor whiteColor]];
    [scrollView setCanCancelContentTouches:NO];
    scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    scrollView.clipsToBounds = YES;
    scrollView.scrollEnabled = YES;
    [scrollView setShowsHorizontalScrollIndicator:NO];
    scrollView.pagingEnabled = YES;
    [self.view addSubview:scrollView];
    pageControl=[[UIPageControl alloc]initWithFrame:CGRectMake(0, 420, 320, 40)];
    [pageControl addTarget:self action:@selector(changepage:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:pageControl];
    
    UIView *blueView = [[UIView alloc] init];
    blueView.frame = CGRectMake(0, 0, 640, 480);
    blueView.backgroundColor = [UIColor whiteColor];
    [scrollView addSubview:blueView];
    self.pageControl.numberOfPages = 2;
    [scrollView setContentSize:CGSizeMake(640, 0)];
}

-(void)changepage:(id)sender
{
    int page = pageControl.currentPage;
    if (page < 0)
        return;
    if (page >= 2)
        return;
    CGRect frame = scrollView.frame;
    frame.origin.x = frame.size.width * page;
    frame.origin.y = 0;
    [scrollView scrollRectToVisible:frame animated:YES];
    
}

- (void)scrollViewDidScroll:(UIScrollView *)_scrollView
{
    if (pageControlIsChangingPage)
        return;
    CGFloat pageWidth = _scrollView.frame.size.width;
    int page = floor((_scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    pageControl.currentPage = page;
}

推荐答案

可以创建一个事件变更页面:

You can create one event change page:

- (IBAction)changePage:(id)sender {
    UIPageControl *pager=sender;
    int page = pager.currentPage;
    CGRect frame = imageGrid_scrollView.frame;
    frame.origin.x = frame.size.width * page;
    frame.origin.y = 0;
    [imageGrid_scrollView scrollRectToVisible:frame animated:YES];
}

将其绑定到 Pagecontrol 的值更改事件.

Bind it to Pagecontrol's value changed event.

这篇关于如何在单击 UIPageControl 的点时更改页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Hardware Volume buttons change in app volume(硬件音量按钮更改应用程序音量)
Cocos2d - How to check for Intersection between objects in different layers(Cocos2d - 如何检查不同层中对象之间的交集)
Resume game cocos2d(恢复游戏 cocos2d)
Highlight Read-Along Text (in a storybook type app for iPhone)(突出显示朗读文本(在 iPhone 的故事书类型应用程序中))
Cocos2D + Disabling only Retina iPad Graphics(Cocos2D + 仅禁用 Retina iPad 图形)
Proper cocos2d scene restart?(正确的 cocos2d 场景重启?)