如何将 UIPageControl 与 iCarousel 一起使用?

Posted

技术标签:

【中文标题】如何将 UIPageControl 与 iCarousel 一起使用?【英文标题】:How to use UIPageControl with iCarousel? 【发布时间】:2012-04-06 09:07:31 【问题描述】:

我在 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];

【问题讨论】:

【参考方案1】:

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

pageControl.currentPage = carousel.currentItemIndex / 5

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

- (IBAction)updatePage:(UIPageControl *)pageControl

    [carousel scrollToItemAtIndex:pageControl.currentPage * 5 aimated:YES];

如果你不使用 nib 文件,你可以使用绑定动作

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

最好同时设置pageControl.defersCurrentPageDisplay = YES; 以避免闪烁。

【讨论】:

以上是关于如何将 UIPageControl 与 iCarousel 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UIPageControl 连接到 UICollectionView (Swift)

UIPageControl 与 UITableView

UIPageController 与 UIPageControl 结合使用?

如何在 iOS 4 中调整 UIPageControl 的指标?

如何复制这个 UIPageControl 外观?

如何在 iPad 中正确设置 UIPageControl 大小