REPhotoCollectionController 1.0

REPhotoCollectionController 1.0

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

Roman Efimov维护。



  • 作者
  • Roman Efimov

REPhotoCollectionController 是一个用于 iOS 的简单照片缩略图查看器,它可以根据日期对照片进行分组。

Screenshot of REPhotoCollectionController

要求

  • Xcode 4.5 或更高版本
  • Apple LLVM 编译器
  • iOS 5.0 或更高版本
  • ARC

示例

首先,需要在示例项目中使用 CocoaPods 软件包管理器安装依赖项

$ pod install

之后,在 Xcode 中构建和运行 REPhotoCollectionControllerExample 项目,以查看 REPhotoCollectionController 的实际功能。

如果没有安装 CocoaPods,请查看下面的 "安装" 部分。

安装

推荐通过 CocoaPods 软件包管理器安装 REPhotoCollectionController,因为它提供了灵活的依赖关系管理和简单易用的安装方式。

如果尚未安装 CocoaPods,请安装它

$ [sudo] gem install cocoapods
$ pod setup

编辑您的 Podfile 并添加 REPhotoCollectionController

$ edit Podfile
platform :ios, '5.0'
pod 'REActivityViewController', '~> 1.0'

将 REPhotoCollectionController 安装到您的 Xcode 项目中

$ pod install

#include "REPhotoCollectionController.h" 添加到使用 REPhotoCollectionController 的类的顶部

使用 REPhotoCollectionController

要使用 REPhotoCollectionController,请将源代码复制到您的项目中,然后向数据源类添加照片对象。以下是方法:

  • 添加一个新的类到项目中,命名为 "Photo" 或类似名称。此类必须实现协议 REPhotoObjectProtocol
@protocol REPhotoObjectProtocol <NSObject>

@property (nonatomic, strong) NSDate *date;

@optional
@property (nonatomic, strong) NSURL *thumbnailURL;
@property (nonatomic, strong) UIImage *thumbnail;

- (id)initWithThumbnailURL:(NSURL *)thumbnailURL date:(NSDate *)date;

@end
  • 实现协议 REPhotoObjectProtocol 所需的方法,如有需要,请实现可选方法。
  • 添加一个新的类到项目中,命名为 "ThumbnailView",其父类必须是 REPhotoThumbnailView。此类将被用作照片缩略图表示视图,您可以自定义它,例如使用不同的库进行远程图像抓取等。示例如下所示
#import "ThumbnailView.h"

@implementation ThumbnailView

- (void)setPhoto:(NSObject <REPhotoObjectProtocol> *)photo
{
    if (photo.thumbnailURL) {
        imageButton.imageURL = photo.thumbnailURL;
    } else {
        [imageButton setImage:photo.thumbnail forState:UIControlStateNormal];
    }
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        imageButton = [[EGOImageButton alloc] initWithPlaceholderImage:[UIImage imageNamed:@""]];
        imageButton.frame = CGRectMake(1, 1, self.frame.size.width - 2, self.frame.size.height - 2);
        [self addSubview:imageButton];
    }
    return self;
}

@end
  • 集成所有组件
NSMutableArray *datasource = [[NSMutableArray alloc] init];
Photo *photo = [[Photo alloc] init];
photo.thumbnail = [UIImage imageName:@"testimage"]; // Set photo here
photo.date = [NSDate date]; // Set date here
[datasource addObject:photo];

REPhotoCollectionController *photoCollectionController = [[REPhotoCollectionController alloc] initWithDatasource:datasource];
photoCollectionController.title = @"Photos";

// Use custom thumbnail view class
photoCollectionController.thumbnailViewClass = [ThumbnailView class];

[self.navigationController pushViewController:photoCollectionController animated:YES];
  • 使用方法 reloadData 来刷新数据源,当您添加更多照片对象时。

联系

Roman Efimov

许可证

REPhotoCollectionController 可在 MIT 许可证下使用。

版权所有 © 2013 Roman Efimov。

本授权允许任何获得本软件及其相关文档(统称为“软件”)副本的人在不限制使用的前提下自由处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供这样做的人,但必须遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于商业性、适用于特定目的和/或不侵犯第三方知识产权的保证。在任何情况下,作者或版权持有者都不会因为因软件本身、使用或以其他方式进行处理的软件而产生的索赔、损害或其他责任承担责任,无论这种责任是基于合同、侵权或其他原因。