在标签中显示iCarousel的当前索引,该标签不是ICarousel中的子视图

时间:2013-02-08 08:02:54

标签: iphone ios uiview uiscrollview

我在我的应用程序中使用iCarousel,我需要获取iCarousel的当前索引并在标签(self.view的子视图)中显示该索引,该标签不是iCarousel的子视图。 我可以用

获取当前索引
int index=iCarousel.currentIndex;

每次滚动轮播时,如何更新label.text中的索引。 在哪种方法中我必须编写代码来更新标签。

3 个答案:

答案 0 :(得分:8)

无论何时滚动,都会调用以下代理,因此您可以在此处更新标签

- (void)carouselCurrentItemIndexUpdated:(iCarousel *)carousel1
{
  int index=carousel1.currentIndex;
  yourlabel.text = [NSString stringWithFormat:@"%d",index];
}

答案 1 :(得分:2)

对于使用iCarousel,最好在从iCarousel Documentation进行实施之前彻底研究其文档。

因此,对于您所面临的问题,文档中提供了两种方法 -

- (NSInteger)indexOfItemView:(UIView *)view;
  

轮播中给定项目视图的索引。适用于项目视图   和占位符视图,但占位符视图索引不匹配   dataSource使用的那些可能是负数(见   indexForVisibleItems属性,以获取更多详细信息)。这种方法   仅适用于可见项视图,并将返回NSNotFound视图   当前未加载的。对于当前加载的所有列表   视图,使用visibleItemViews属性。

- (NSInteger)indexOfItemViewOrSubview:(UIView *)view
  

此方法为您提供传递的视图或的视图的项索引   包含作为参数传递的视图的视图。它的工作方式是走路   视图层次结构从视图开始传递,直到找到   项目视图并在轮播中返回其索引。如果不   找到当前加载的项视图,它返回NSNotFound。这个   方法对于处理嵌入控件上的事件非常有用   在项目视图中。这允许您将所有项控件绑定到   视图控制器上的单个操作方法,然后解决   触发该操作的控件与哪个项相关。您   可以在Controls Demo示例中看到此技术的示例   项目

希望这有帮助!! :)

答案 2 :(得分:1)

有点晚了,但对于其他人来说,下面的委托方法对我有用(有多个轮播)

- (void)carouselCurrentItemIndexDidChange:(iCarousel *)carousel
{
    NSLog(@"%s", __FUNCTION__);

    if (carousel == carousel2) {
        NSLog(@"here");
        long (or int) currentIndex = carousel.currentItemIndex;

    }
}