使用Open Cover Flow用于视频幻灯片而不是iOS中的图像

时间:2011-12-23 00:08:33

标签: iphone objective-c ios ipad ios4

你可以在iOS中拥有多个视频而不是图像的封面流吗?用户会看到每个视频的开头仍然是播放按钮而不是图像,有点像Youtube。

因此,不是像iOS中当前Cover Flow那样的一组图像,而是一组视频。或者视频和图像混合在一起。

2 个答案:

答案 0 :(得分:4)

为什么不使用缩略图来表示视频?按下图像时,视频会加载。这将使应用程序使用较少的处理能力,并允许与当前的iOS封面流程方法集成。

如果你真的想制作一个视频封面流程,你可能需要编写代码来从头创建它。我认为这是可能的。

答案 1 :(得分:4)

iCarousel是我在这种情况下使用的框架。它是一个CoverFlow替换库,因为CoverFlow是iOS下的未记录的API。请参阅GitHub网站上的说明并阅读以下注释。

  

与许多其他“CoverFlow”库不同,iCarousel可以处理任何类型的视图,而不仅仅是图像,因此它非常适合在应用程序中以流畅和令人印象深刻的方式呈现分页数据。

我自己没有尝试使用视频对象,但是从文档中看,您可以传入视频对象或缩略图,点击后加载视频。在性能方面,缩略图会更有意义。以下是自述文件的源代码,并说明如何使用它。

  

iCarousel遵循Apple的数据驱动视图约定   提供两个协议接口,iCarouselDataSource和   iCarouselDelegate。 iCarouselDataSource协议具有以下内容   必需的方法(注意:对于Mac OS,用NSView代替UIView   方法参数):

     

- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel;

     

返回轮播中的项目数(视图)。

     

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

     

返回要在轮播中指定索引处显示的视图。 reusingView参数的工作方式类似于UIPickerView,其中先前已在轮播中显示的视图将传递回要回收的方法。如果此参数为nil,则可以设置其属性并返回它,而不是创建新的视图实例,这将略微提高性能。与UITableView不同,没有用于区分不同轮播视图类型的reuseIdentifier,因此如果您的轮播包含多个不同的视图类型,那么您应该忽略此参数并在每次调用该方法时返回一个新视图。您应确保每次调用carousel:viewForPageAtIndex:方法时,它都会返回reusingView或全新的视图实例,而不是维护您自己的可循环视图池,因为为不同的轮播项目索引返回同一视图的多个副本可能导致轮播显示问题。

因此,对于第二种方法,您可以实现作为视频缩略图的UIImageView,并且每次为每个视频重复使用一个视图。这样做的好处是你可以混合图像和视频,只有当你需要全屏显示图像/视频时才能区分。它就像查询类一样简单,然后设置一个基于类显示的不同视图。这是足够的信息吗?如果有什么不清楚,请告诉我。