iCarousel 未正确设置标签

Posted

技术标签:

【中文标题】iCarousel 未正确设置标签【英文标题】:iCarousel not setting label in it properly 【发布时间】:2014-02-21 09:17:43 【问题描述】:

在我的代码中,我试图在 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 计数]。 轮播委托和数据源也被设置,并且在 iCarousel 上也调用了 reloadData 方法。

我得到的输出是这样的。

|一月、二月、三月、十一月、十二月|

请告诉我我哪里错了?现在该怎么办?

【问题讨论】:

iCaurosel 代表将观看。 【参考方案1】:

将您的代码更新为以下代码 -

- (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 进行查看。

【讨论】:

以上是关于iCarousel 未正确设置标签的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 使用 UiView 的 iCarousal

IOS如何让iCarousel像UIScrollView页面一样滚动

iPad 上的 iCarousel 性能问题

在 Swift 的 iCarousel 中预览 UIWebView

在 iOS 的 icarousel 中使用 AsyncImageView 的问题

未调用 iCarousel 数据源