无法滚动 iCarousel 图像

Posted

技术标签:

【中文标题】无法滚动 iCarousel 图像【英文标题】:Unable to scroll iCarousel images 【发布时间】:2014-02-11 07:12:40 【问题描述】:

我在我的小应用程序中使用 iCarousel 库。我正在通过网络服务获取图片网址并将这些图片放入 iCarousel 库。

首先我创建了一个 UIView 并将 iCarousel 作为相应的类添加到它。后者将数据源和删除门设置为同一类。

现在一切看起来都很酷,我可以看到图像但无法滑动图像。

以下是我的代码。

- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel

    //return the total number of items in the carousel
    return [galleryItems count];


- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view

    UILabel *label = nil;

    //create new view if no view is available for recycling
    if (view == nil)
    
        //NSString *ImageURL = @"YourURLHere";
        //NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ImageURL]];
        //imageView.image = [UIImage imageWithData:imageData];

        view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200.0f, 200.0f)];

        //[((UIImageView *)view) setImageWithURL:[NSURL URLWithString:@"http://www.pizzatower.com/img/icons/Pizza-icon.png"]];
        NSURL *imageURL = [[galleryItems objectAtIndex:index] galleryURL];
        [((UIImageView *)view) setImageWithURL:imageURL];

        view.contentMode = UIViewContentModeScaleAspectFit;
        label = [[UILabel alloc] init];
        label.backgroundColor = [UIColor clearColor];
        label.font = [label.font fontWithSize:20];
        label.tag = 1;
        // label.contentMode = UIViewContentModeBottom;
        //        label.frame = CGRectMake(
        //                                       self.view.frame.size.width - label.frame.size.width,
        //                                       self.view.frame.size.height - label.frame.size.height,
        //                                       label.frame.size.width,
        //                                       label.frame.size.height );
        //label.bounds = view.bounds;
        [view addSubview:label];
    
    else
    
        //get a reference to the label in the recycled view
        label = (UILabel *)[view viewWithTag:1];
    

    //set item label
    //remember to always set any properties of your carousel item
    //views outside of the `if (view == nil) ...` check otherwise
    //you'll get weird issues with carousel item content appearing
    //in the wrong place in the carousel
    //label.text = [[galleryItems objectAtIndex:index] galleryDescription];

    return view;

我使用了相同的代码库,它在其他一些项目中也有效。不知道我在这里错过了什么。有人可以请教我。

【问题讨论】:

请添加轮播初始化相关的代码...另外,检查是否启用了用户交互,轮播顶部没有图层.. 【参考方案1】:

包含轮播的 UIView 可能将 userInteractionEnabled 设置为 NO。

另一种可能性是包含轮播的 UIView 可能比轮播小,因此会阻塞交互。尝试设置其背景颜色以查看其真实大小。

【讨论】:

【参考方案2】:

我建议删除您的 nib 或情节提要中的 ViewController 并重新创建它。我曾经遇到过同样的问题,并且在重新创建它之后它起作用了。确保在放置 UIView 时将其居中(水平和垂直)

【讨论】:

以上是关于无法滚动 iCarousel 图像的主要内容,如果未能解决你的问题,请参考以下文章

无法滚动 iCarousel 图像

在 Swift 的 iCarousel 中预览 UIWebView

如何获取 iCarousel 当前可见视图?

在 iOS 的 icarousel 中使用 AsyncImageView 的问题

在 ICarousel 中模糊图像

iCarousel 滚动不流畅