【问题标题】:Create an array of UiImageVIews to feed iCarousel from 2 arrays创建一个 UiImageVIews 数组以从 2 个数组中提供 iCarousel
【发布时间】:2014-02-17 08:08:52
【问题描述】:

我正在尝试创建 UIImageViews 的 NSMutableArray 来提供 iCarousel。每个 UIImageView 都有一个视频的缩略图和名称和长度的标签。 我发现,一旦加载了超过 10 个视频缩略图,在 iCarousel 加载时创建视频缩略图会导致不可接受的延迟。我还没有找到一种异步方式来创建视频缩略图,因为 iCarousel 需要它们。

我正在尝试的当前解决方案是在保存视频时将视频和匹配的缩略图保存到应用程序文档文件夹中。然后将它们加载到 2 个时间排序的数组中(具有完全相同的计数)。

我要解决的难题是,使用一个数组中的缩略图和视频中的名称和视频长度以及第二个数组中的匹配索引来创建新的 UIImageViews 数组的最佳方法是什么。

我之前使用此代码从一组视频中创建拇指和标签。

 UIImageView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200.0f, 135.0f)];
    ((UIImageView *)view).image = [UIImage imageNamed:@"page.png"];
    view.contentMode = UIViewContentModeCenter;

    UIImage *thumb = [UIImage imageWithContentsOfFile:anyPath];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:view.bounds];
    imageView.tag = 1000;
    [imageView setImage:thumb];
    [view addSubview:imageView];

    UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 150.f, 200.f, 25.f)];
    [nameLabel setTextAlignment:NSTextAlignmentLeft];
    [nameLabel setTag:2000];
    [nameLabel setTextColor:[UIColor whiteColor]];
    [nameLabel setFont:[UIFont fontWithName:@"HelveticaNeue" size:12.f]];
    [nameLabel setText:anyPath.lastPathComponent];
    [view addSubview:nameLabel];

    UILabel *lengthLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 150.f, 200.f, 25.f)];
    [lengthLabel setTextAlignment:NSTextAlignmentRight];
    [lengthLabel setTag:3000];
    [lengthLabel setTextColor:[UIColor whiteColor]];
    [lengthLabel setFont:[UIFont fontWithName:@"HelveticaNeue" size:12.f]];
    [lengthLabel setText:[MediaManager lengthOfVideoWithPath:anyPath]];
    [view addSubview:lengthLabel]; 

任何建议将不胜感激。

【问题讨论】:

    标签: arrays video ios7 uiimageview icarousel


    【解决方案1】:

    好的,解决方案是使用一个块从 2 个数组中创建 UIImageViews 数组,就像这样(这会快速加载轮播)

      [self.aryVideos enumerateObjectsUsingBlock:^(id item, NSUInteger idx, BOOL *stop) {
    
        UIImageView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200.0f, 135.0f)];
        ((UIImageView *)view).image = [UIImage imageNamed:@"page.png"];
        view.contentMode = UIViewContentModeCenter;
    
        UIImage *thumb = [UIImage imageWithContentsOfFile:self.aryThumbs[idx]];
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:view.bounds];
        imageView.tag = 1000;
        [imageView setImage:thumb];
        [view addSubview:imageView];
    
    
        UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 150.f, 200.f, 25.f)];
        [nameLabel setTextAlignment:NSTextAlignmentLeft];
        [nameLabel setTag:2000];
        [nameLabel setTextColor:[UIColor whiteColor]];
        [nameLabel setFont:[UIFont fontWithName:@"HelveticaNeue" size:12.f]];
        NSString *path = [item lastPathComponent];
        [nameLabel setText:path];
        [view addSubview:nameLabel];
    
        UILabel *lengthLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 150.f, 200.f, 25.f)];
        [lengthLabel setTextAlignment:NSTextAlignmentRight];
        [lengthLabel setTag:3000];
        [lengthLabel setTextColor:[UIColor whiteColor]];
        [lengthLabel setFont:[UIFont fontWithName:@"HelveticaNeue" size:12.f]];
        [lengthLabel setText:[MediaManager lengthOfVideoWithPath:item]];
        [view addSubview:lengthLabel];
    
    
        [self.aryThumbViews addObject:view];
    }];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 2018-01-07
      • 2022-07-30
      • 2012-12-16
      • 2017-05-06
      相关资源
      最近更新 更多