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

Fre*_*cer 6 iphone objective-c ipad ios4 ios

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

因此,它不是像iOS中当前Cover Flow那样的一组图像,而是一组视频.或视频和图像混淆.

Dyl*_*tey 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视频缩略图,并每次为每个视频重用一个视图。这样做的好处是您可以混合图像和视频,仅在需要全屏显示图像/视频时进行区分。它就像查询类一样简单,然后根据类设置要显示的不同视图。这些信息足够吗?如果有不清楚的地方请告诉我。