试图将iCarousel实施到我的项目中,但没有任何东西出现 - 我做错了什么?

时间:2013-04-03 18:13:54

标签: ios objective-c icarousel

我正在尝试使用iCarousel库在我的应用中实现轮播类型选择器,但是当我加载应该显示轮播的视图时,什么都没有出现。

以下是相关代码:

iCarousel委托方法:

- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel {
    return 65;
}

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view {
    // Create a number label representing a numeric WPM option
    UILabel *numberLabel = nil;

    // Create new view if no view is available for recycling
    if (!view) {
        view = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 220, 60)];
        numberLabel = [[UILabel alloc] initWithFrame:view.bounds];
        numberLabel.backgroundColor = [UIColor clearColor];
        numberLabel.textColor = [UIColor whiteColor];
        numberLabel.textAlignment = NSTextAlignmentCenter;
        numberLabel.tag = 1;

        [view addSubview:numberLabel];
    }
    else {
        numberLabel = (UILabel *)[view viewWithTag:1];
    }

    // Calculate the number's value depending on the index value being retrieved
    int number = 200 + (index * 20);
    numberLabel.text = [@(number) stringValue];

    return view;
}

viewDidLoad:

    self.carousel = [[iCarousel alloc] initWithFrame:CGRectMake(120, 35, 150, 50)];
    self.carousel.type = iCarouselTypeLinear;
    [self.view addSubview:self.carousel];

我到底错过了什么让它搞砸了?

3 个答案:

答案 0 :(得分:5)

我没有使用过iCarousel,但也许你没有设置委托和/或dataSource?

self.carousel.delegate = self;
self.carousel.dataSource = self;

从您显示的代码中看起来并不像您这样做。

答案 1 :(得分:0)

上面的方法是icarousel委托方法,检查它们是否被调用。如果没有,检查你是否在你的接口文件中添加了iCarouselDelegate,iCarouselDataSource。另外,你要添加icarousel作为子视图。它应该是在nib文件或故事板本身中建立,而numberlabel应作为子视图添加到轮播视图中。 检查你是否正在做这样的事情:[carousel reloadData]; 这应该调用所有轮播委托方法。

答案 2 :(得分:0)

self.carousel.delegate = self;
self.carousel.dataSource = self;
[self.carousel reload];