在我的代码中我试图在iCarouselView中设置标签。我的icarousel包含标签和textView所以我试图设置标签,但它没有正确设置。我有几个月的数组并设置每个icarousel标签的数月数组,像这样。
(UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view { if (!view) { UIViewController * viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PopUpView"]; view = [viewController.view viewWithTag:999]; UILabel *label=(UILabel*)[viewController.view viewWithTag:109]; label.text = [_monthsArray objectAtIndex:index]; CGRect Frame = CGRectMake(view.frame.origin.x, view.frame.origin.y+100, view.frame.size.width, view.frame.size.height); view.frame = Frame; } return view;}
我在storyBoard中将外部视图作为popUpView加载并使用标记获取标签。 我将轮播计数作为[monthsArray计数]返回。 还设置了carousel委托和数据源,并且在iCarousel上也调用了reloadData方法。
我得到的输出是这样的。
|一月,二月,三月,十一月,十二月|
请告诉我我哪里错了?现在该怎么办?
答案 0 :(得分:0)
将您的代码更新为以下 -
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
if (!view){
UIViewController * viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PopUpView"];
view = [viewController.view viewWithTag:999];
CGRect Frame = CGRectMake(view.frame.origin.x, view.frame.origin.y+100, view.frame.size.width, view.frame.size.height);
view.frame = Frame;
}
UILabel *label=(UILabel*)[view viewWithTag:109];
label.text = [_monthsArray objectAtIndex:index];
return view;
}
iCaurosel将采用UIView,在您的情况下,您正在创建一个视图控制器,它不会被保留并且很危险。看看你是否通过自定义Xib将其更改为查看。