3

アプリにカルーセル タイプ ピッカーを実装するために 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];

それを台無しにしている正確に何が欠けていますか?

4

3 に答える 3

5

iCarousel を使用したことはありませんが、delegate や dataSource を設定していない可能性がありますか?

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

あなたが示しているコードからは、そうではないようです。

于 2013-04-06T20:16:09.497 に答える
0

上記のメソッドは icarousel デリゲート メソッドです。呼び出されているかどうかを確認してください。そうでない場合は、インターフェイス ファイルに iCarouselDelegate 、 iCarouselDataSource を追加したかどうかを確認してください。また、サブビューとして icarousel を追加しています。むしろ、 nib ファイルまたはストーリーボード自体、numberlabel はカルーセル ビュー内のサブビューとして追加する必要があります。次のようなことを行っているかどうかを確認してください: [carousel reloadData]; これは、すべてのカルーセル デリゲート メソッドを呼び出す必要があります。

于 2013-04-04T09:17:58.000 に答える
0
self.carousel.delegate = self;
self.carousel.dataSource = self;
[self.carousel reload];
于 2013-04-06T21:24:30.533 に答える