如何在iCarousel中使用UIPageControl?

Dan*_*ark 3 objective-c uipagecontrol ipad

我在icarousel中有一些图像.(约20张图片)

我想在一页中有5张图片.

图像像素或图像位置没有问题.

如何在没有ScrollView的情况下使用uipagecontrol?

ex)能够使用一些委托方法..等等.

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];
Run Code Online (Sandbox Code Playgroud)

Nic*_*ood 11

在iCarousel carouselCurrentItemIndexUpdated:委托方法中,设置

pageControl.currentPage = carousel.currentItemIndex / 5
Run Code Online (Sandbox Code Playgroud)

然后将pageControl操作绑定到如下所示的方法:

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

如果您没有使用nib文件,则可以使用绑定操作

[pageControl addTarget:self action:@selector(updatePage:) forControlEvents:UIControlEventValueChanged];
Run Code Online (Sandbox Code Playgroud)

设置pageControl.defersCurrentPageDisplay = YES;也是一个好主意,以避免闪烁.