MMFlowView 1.0.3

MMFlowView 1.0.3

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

Markus Müller维护。





一款适用于Mac OS X的全功能的覆盖流控制。 截图

描述

MMFlowView是一个专门用于支持“覆盖流”效果的类,它旨在像IKImageBrowserView一样使用。它支持所有图像类型(URL、NSImage、图标、QuartzComposerCompositions、QTMovie),就像IKImageBrowserView。如果您熟悉IKImageBrowserView,则可以直接开始使用MMFlowView。

MMFlowView使用异步图像加载并缓存图像内容,尽量减少内存使用。它支持通过数据源或Cocoa绑定来加载图像。它是可访问性的,具有拖放和快速查看预览功能。它使用CoreAnimation提供平滑快速动画。

作者

Markus Mueller,[email protected]

许可证

MMFlowView在MIT许可下可用。查看LICENSE文件以获取更多信息。

支持的操作系统和SDK版本

  • 支持的构建目标 - Mac OS 10.8(Xcode 5)
  • 最早兼容的部署目标 - Mac OS 10.7

安装

协议

要使用数据源方法加载图像,您的数据项需要实现MMFlowViewItem协议(类似于IKImageBrowserItem)

    - (id)imageItemRepresentation;

要显示的图像,如果没有图像可以显示则可以返回nil。此方法经常被调用。

    - (id)imageItemRepresentationType;

指定图像表示的字符串。该字符串可以是以下任何一个常量

    kMMFlowViewURLRepresentationType
    kMMFlowViewCGImageRepresentationType
    kMMFlowViewPDFPageRepresentationType
    kMMFlowViewPathRepresentationType
    kMMFlowViewNSImageRepresentationType
    kMMFlowViewCGImageSourceRepresentationType
    kMMFlowViewNSDataRepresentationType
    kMMFlowViewNSBitmapRepresentationType
    kMMFlowViewQTMovieRepresentationType
    kMMFlowViewQTMoviePathRepresentationType
    kMMFlowViewQCCompositionRepresentationType
    kMMFlowViewQCCompositionPathRepresentationType
    kMMFlowViewQuickLookPathRepresentationType
    kMMFlowViewIconRefPathRepresentationType
    kMMFlowViewIconRefRepresentationType

描述数据源项的类型。

    - (NSString*)imageItemUID;

唯一标识数据源项的字符串。FlowView使用此标识符将数据源项与其缓存关联。

    - (NSString*)imageItemTitle;

图像的显示标题。

MMFlowView通过提供两个协议接口MMFlowViewDataSource和MMFlowViewDelegate遵循苹果的以数据驱动视图的约定。MMFlowViewDataSource协议有如下必需的方法

    - (NSUInteger)numberOfItemsInFlowView:(MMFlowView*)aFlowView;

获取流视图中的图像数量。

    - (id<MMFlowViewItem>)flowView:(MMFlowView*)aFlowView itemAtIndex:(NSUInteger)anIndex;

返回与指定索引相对应的流视图中的项的对象。返回的对象必须实现MMFlowViewItem协议所需的方法。

有关更多详细信息,请参阅MMFlowView.h头文件中的注释。

绑定

要使用Cocoa绑定加载图像,绑定数组控制器的项目必须符合MMFlowViewItem协议或必须使用以下属性设置 required-infomation所需信息的关键路径

    @property (nonatomic,copy) NSString *imageRepresentationKeyPath;

观察集合中项的图像表示的关键路径,默认为imageItemRepresentation,有关详细信息请参阅MMFlowViewItem协议。

    @property (nonatomic,copy) NSString *imageRepresentationTypeKeyPath;

观察集合中项的图像表示类型的关键路径,默认为imageItemRepresentationType,有关详细信息请查阅MMFlowViewItem协议。

    @property (nonatomic,copy) NSString *imageUIDKeyPath;

观察集合中项的图像uid的关键路径,默认为imageItemUID,有关详细信息请查阅MMFlowViewItem协议。

    @property (nonatomic,copy) NSString *imageTitleKeyPath;

观察集合中项的图像标题的关键路径,默认为imageItemTitle,有关详细信息请查阅MMFlowViewItem协议。

如果您未设置这些关键路径,则您的图像项需要支持MMFlowViewItem协议。然后MMFlowView公开一个NSContentArrayBinding,该绑定必须绑定到一个NSArrayControllers arrangedObjects

        [ self.flowView bind:NSContentArrayBinding
                    toObject:self.itemArrayController
                 withKeyPath:@"arrangedObjects"
                     options:nil ];

然后MMFlowView自动观察您的数据源。

请查看MMFlowViewDemo项目,它展示了如何使用拖拽和快速查看预览面板。