How to use UIPageControl with iCarousel?

蹲街弑〆低调 提交于 2019-12-30 07:11:08

问题


I have some images within icarousel. (about 20 images)

I wanna 5 images in a page.

There is no problem about image pixel or image location.

How to use uipagecontrol WITHOUT ScrollView?

ex) able to use some delegate methods.. and so on.

carousel.type = iCarouselTypeLinear;
    carousel  = [[iCarousel alloc] initWithFrame:CGRectMake(0, 504, 1024, 164)];
    carousel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"10004.png"]];
    carousel.delegate = self;
    carousel.dataSource = self;
    [self.view addSubview:carousel];
    [carousel reloadData];
    [carousel release];

    UIView *bandImageView = [[UIView alloc] initWithFrame:CGRectMake(0, 668, 1024, 20)];
    bandImageView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"10001.png"]];
    [self.view addSubview:bandImageView]; // page dots in

    UIPageControl *pageControl = [[UIPageControl alloc] init];
    pageControl.frame = CGRectMake(434, 0, 150, 20); 
    pageControl.numberOfPages = 6; 
    pageControl.currentPage = 0; 
    [bandImageView addSubview:pageControl];
    [pageControl release];

回答1:


In the iCarousel carouselCurrentItemIndexUpdated: delegate method, set

pageControl.currentPage = carousel.currentItemIndex / 5

Then bind your pageControl action to a method like the one below:

- (IBAction)updatePage:(UIPageControl *)pageControl
{
    [carousel scrollToItemAtIndex:pageControl.currentPage * 5 aimated:YES];
}

If you're not using a nib file, you can bind the action using

[pageControl addTarget:self action:@selector(updatePage:) forControlEvents:UIControlEventValueChanged];

It's a good idea to set pageControl.defersCurrentPageDisplay = YES; as well to avoid flicker.



来源:https://stackoverflow.com/questions/10041365/how-to-use-uipagecontrol-with-icarousel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!