1

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

int index=iCarousel.currentIndex;

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

4

3 回答 3

9

每当您滚动时,都会调用以下委托,因此您可以在此处更新您的标签

- (void)carouselCurrentItemIndexUpdated:(iCarousel *)carousel1
{
  int index=carousel1.currentIndex;
  yourlabel.text = [NSString stringWithFormat:@"%d",index];
}
于 2013-02-08T08:11:56.657 回答
2

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

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

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

轮播中给定项目视图的索引。适用于项目视图和占位符视图,但是占位符视图索引与数据源使用的索引不匹配,并且可能为负数(有关更多详细信息,请参见上面的 indexsForVisibleItems 属性)。此方法仅适用于可见项目视图,并且将为当前未加载的视图返回 NSNotFound。对于所有当前加载的视图的列表,请使用 visibleItemViews 属性。

- (NSInteger)indexOfItemViewOrSubview:(UIView *)view

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

希望这可以帮助 !!:)

于 2013-02-08T08:13:04.383 回答
1

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

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

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

    }
}
于 2013-10-06T16:15:32.330 回答