DBFBProfilePictureView 1.6

DBFBProfilePictureView 1.6

测试已测试
语言语言 Obj-CObjective C
许可证 Apache 2
发布最后发布2015 年 9 月

David Brittain 维护。



 
依赖
AFNetworking>= 2.2
FBSDKCoreKit~> 4.3
 

DBFBProfilePictureView - 为 Facebook 个人资料图片提供改进的视图

我希望解决 Facebook 提供的 FBProfilePictureView 中的几个问题

  • 缓存下载的资料图片,以防每次都重击网络
  • 启动和完成处理程序,以便控制视图的显示(例如,淡入或显示 UIActivityIndicatorView)
  • 当下载失败时通知您
  • 控制何时显示空资料图片
  • 在视图嵌入到 UITableCellView 时表现良好

此外,还有几项其他重大更改

  • 实现了转换到 ARC
  • 使用键/值观察来监控 profileID 和 pictureCropping 的更改
  • 不对零大小图像发出下载请求

安装

安装 DBFBProfilePictureView 的最简单方法是通过 CocoaPods。 主页有一个快速入门指南。将以下内容添加到您的 Podfile 中

    platform :ios, '5.0'
    pod 'DBFBProfilePictureView'

这样它将自动处理依赖项。这也是获取更新的简单方法。

如果您想手动安装,则所需的两个文件位于子目录 DBFBProfilePictureView 中。为了构建它们,您还将需要 AFNetworking 1.0 或更高版本以及 Facebook iOS SDK v3.1.1。或者,您的项目需要启用 ARC,或者您需要设置 -fobjc-arc 标志,如此处所述这里

入门

视图的典型使用情况可能如下所示...

在一个视图控制器或 UITableCellView 中声明属性

    @property(strong) DBFBProfilePictureView* facebookPictureView;

导入 QuartzCore,因为我们将使用 CALayer

    #import <QuartzCore/QuartzCore.h>

在您的视图控制器或 UITableCellView 的 viewDidLoad 中初始化属性

        self.facebookPictureView = [[DBFBProfilePictureView alloc] initWithFrame:CGRectMake(x,y,width,height)];
        //hide the view when the download starts
        self.facebookPictureView.startHandler = ^(DBFBProfilePictureView* view){
            view.layer.opacity = 0.0f;
        };
        //show the view when the download completes, or show the empty image
        self.facebookPictureView.completionHandler = ^(DBFBProfilePictureView* view, NSError* error){
            if(error) {
                view.showEmptyImage = YES;
                view.profileID = nil;
                NSLog(@"Loading profile picture failed with error: %@", error);
            } 
            [UIView animateWithDuration:0.5f animations:^{
                view.layer.opacity = 1.0f;
            }];
        };

当您知道喜好 ID 时设置资料 ID

        facebookPictureView.profileID = xxxxx;

您可以通过调用以下内容启用内存中图像缓存支持

        [DBFBProfilePictureView setMaxImagesCachedBeyondLifetime:cacheSize];

通过传递一个缓存大小为 0 的值,可以禁用缓存。

您还可以通过调用以下内容启用磁盘缓存支持

        [DBFBProfilePictureView enableDiskCache:YES lifetime:3600];

版本历史

1.6.0 - 转到 FBSDK v4 和 AFNetworking 2(感谢 @Rawrcoon)

1.5.3 - 修复与长 Facebook ID 和磁盘缓存相关的错误(感谢 @fmalekpour)- 将 imageView 暴露为只读属性(感谢 @0xc00010ff)

1.5.2 - 修复了与磁盘缓存哈希溢出的问题(感谢 @ekaralar)

1.5.1 - 添加了启用磁盘缓存的 support(感谢 @ekratskih)

1.5.0 - 添加了对缓存个人资料图片的支持(感谢 @cellininicholas & @FlorianDenis)- 对 AFNetworking 2 添加了支持。在 DBFBProfilePictureView.m 中定义 USE_AFNETWORKING_2

1.4.2 - 修复了注销观察者时的 bug(感谢 @FlorianDenis)。

1.4.1 - 当没有指定自定义空个人资料图片时修复了无限递归问题。 - 移除了已弃用的 FBGraphBasePath 的使用(感谢 @FlorianDenis)。

1.4.0 - 允许在未提供个人资料图片时设置自定义图片显示

1.3.0 - 当视图被重新使用并触发下载时,置空图片。(修复了 Issue #5 中描述的 UICollectionView 的问题)

1.2.0 - 当由于视图被重新使用而取消下载时,不要调用完成回调

1.1.0 - 为相同请求 URL 的 UIImage 对象添加内存缓存和共享

1.0.0 - 初始发布

许可证

Apache License, Version 2.0 许可下。