1

我一直在搞乱 iCarousel(链接:https ://github.com/nicklockwood/iCarousel )有一段时间了,有一件事我无法理解。

它将 2 个或更多笔尖装入一个旋转木马。这是为轮播中的所有项目加载相同笔尖的当前代码:

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
if (!view)
{
    //load new item view instance from nib
    //control events are bound to view controller in nib file
    view = [[[NSBundle mainBundle] loadNibNamed:@"ItemView" owner:self options:nil] lastObject];

       }
return view;
}

它是 iCarousel 中 ControlsDemo 的标准代码。

我是否正确地说可以将一个简单的 If 语句应用于上面的代码,以便为每个项目使用不同的 nib 填充轮播?

或者我是否必须在一开始就加载一组 nib 文件,然后在上面的方法中引用它们?

还是有完全不同的方法来做到这一点?

4

1 回答 1

0

这个问题非常简单,我把它复杂化了。

这是我添加到上述示例中以修复它的代码:

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
    if (index == 0) {
        view = [[[NSBundle mainBundle] loadNibNamed:@"nib1" owner:self options:nil] lastObject];
    } else {
        view = [[[NSBundle mainBundle] loadNibNamed:@"nib2" owner:self options:nil] lastObject];
    }
    return view;
}
于 2012-06-29T13:12:39.163 回答