我在我的应用程序中使用iCarousel,我需要获取iCarousel的当前索引并在标签(self.view的子视图)中显示该索引,该标签不是iCarousel的子视图。 我可以用
获取当前索引int index=iCarousel.currentIndex;
每次滚动轮播时,如何更新label.text中的索引。 在哪种方法中我必须编写代码来更新标签。
答案 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;
}
}