我正在尝试使用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];
我到底错过了什么让它搞砸了?
答案 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];