iCarousel - 动态更改中心项目 iOS

Posted

技术标签:

【中文标题】iCarousel - 动态更改中心项目 iOS【英文标题】:iCarousel - Change center item Dynamically iOS 【发布时间】:2013-04-17 08:45:46 【问题描述】:

我在我的 iPad 应用程序中使用 iCarousel,我想知道是否有办法在选择时动态更改中心项目的视图。简而言之,我想实现这样的目标 我设法将第一个索引(项目 - 0)设置为红色,但我想不出一种方法来执行以下操作:

选择1时,我希望将0的图像更改为普通的白色,1到红色。

也适合 2 人。

任何帮助或建议将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

如果您想选择项目然后更改颜色,只需使用:

- (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index
//change the view of current index

如果你希望当前项目颜色是红色而不选择,那么你需要做更多的事情:

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
//Here you need to check current index
    if (index == self.carousel.currentItemIndex) 
    //change the view
    

而且您还需要使用此方法检查索引是否更改:

- (void)carouselCurrentItemIndexDidChange:(iCarousel *)carousel
//you need to reload carousel for update view of current index
[self.carousel reloadData];

【讨论】:

如果我想更改 didSelectItemAtIndex 中的颜色,那么我需要做什么?我将如何获得选定的视图参考? @AvijitDas 您可能有一组自定义视图作为 iCarousel 的数据源。只需从 customView[index] 获取参考信息?您正在寻找吗? 谢谢,我正在寻找访问当前选定视图的属性。我在 didSelectItemAtIndex 函数下使用了 currentItemView 方法,我实现了我的目标。这是ReflectionView的代码 refelctionView = (ReflectionView)self.carousel.currentItemView; 有用的答案,但是当您单击轮播中的项目时,由于重新加载轮播,它有点滞后。【参考方案2】:

iCarousel 有一个委托方法

- (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index

每当您选择一个项目时都会调用它,并且 index 会为您提供当前所选项目的索引。您可以使用此索引更改视图的颜色。您还可以将先前视图的索引保存在任何整数变量中,并使用它来重置该图块的颜色。

【讨论】:

以上是关于iCarousel - 动态更改中心项目 iOS的主要内容,如果未能解决你的问题,请参考以下文章

如何显示 iCarousel 中心视图仅突出显示其他最近的视图显示一些黑暗

如何沿滚动动态加载带有项目的iOS iCarousel

不同项目的不同宽度 - 在 iCarousel 中

iCarousel 项目索引更改与 UITextView 中显示的随机详细信息不同步

如何使用 iCarousel 更改 buttonTapped 上的视图控制器?

如何仅选择 iCarousel 的中心图像?