UIPageControl — Ansicht nicht ändern, klicken Sie auf Punkte

Ich bin mit pageControl in meiner Anwendung. Ansicht, ändern sich nicht beim klicken auf Punkte, sondern auf die beiden enden von pageControl, wenn ich auf Ansicht ändern. Ich möchte Sie zu ändern, klickt auf den Punkt. Was ist zu tun? Gibt es irgendeine Methode, die ich implementieren muss?

Hier ist der Code

#import "ScrollingViewController.h"

@implementation ScrollingViewController
@synthesize scrollView;
@synthesize pageControl;

- (void)viewDidLoad 
{
    [super viewDidLoad];
    [self setupPage];
    pageControl =[[UIPageControl alloc] initWithFrame:CGRectMake(0,390,320,100)]; 
    pageControl.userInteractionEnabled =YES;
    pageControl.numberOfPages = 5; 
    pageControl.currentPage = 0;
    [self.pageControl setBackgroundColor:[UIColor blackColor]];
    pageControl.enabled = TRUE;
    [pageControl setHighlighted:YES];
    [pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:pageControl]; 
}


- (void)didReceiveMemoryWarning 
{
    [super didReceiveMemoryWarning];
}

- (void)viewDidUnload 
{
    [scrollView release];
    [pageControl release];
}


- (void)dealloc 
{
    [super dealloc];
}


- (void)setupPage
{
    scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,320,400)];
    [scrollView setContentSize:CGSizeMake(1000, 800)];
    //scrollView.contentSize = CGSizeMake(1000,800);
    scrollView.scrollsToTop = NO;
    [self.scrollView setBackgroundColor:[UIColor blackColor]];
    [scrollView setCanCancelContentTouches:NO];
    scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    scrollView.clipsToBounds = YES;
    scrollView.scrollEnabled = YES;
    scrollView.pagingEnabled = YES;

    NSUInteger nimages = 0;
    CGFloat cx = 0;
    for (; ; nimages++) 
    {
        NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", (nimages + 1)];
        UIImage *image = [UIImage imageNamed:imageName];
        if (image == nil) 
        {
            break;
        }
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

        CGRect rect = imageView.frame;
        rect.size.height = image.size.height;
        rect.size.width = image.size.width;
        rect.origin.x = ((scrollView.frame.size.width - image.size.width) / 2) + cx;
        rect.origin.y = ((scrollView.frame.size.height - image.size.height) / 2);

        imageView.frame = rect;

        [scrollView addSubview:imageView];
        [imageView release];

        cx += scrollView.frame.size.width;
    }

    self.pageControl.numberOfPages = nimages;
    [scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
    scrollView.delegate = self;
    [self.view addSubview:scrollView];
}


- (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;
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)_scrollView 
{
    pageControlIsChangingPage = NO;
}



- (IBAction)changePage:(id)sender 
{
    /*
     *  Change the scroll view
     */
    CGRect frame = scrollView.frame;
    frame.origin.x = frame.size.width * pageControl.currentPage;
    frame.origin.y = 0;
    [scrollView scrollRectToVisible:frame animated:YES];
    pageControlIsChangingPage = YES;
}

@end
  • Zeigen Sie uns einige code bitte
InformationsquelleAutor sameet | 2011-05-12
Schreibe einen Kommentar