Ovatar-iOS 文档
Ovatar 是在客户端中启用头像支持最快、最强大的方式。本文档重点关注内置于 Objective C 的 iOS 框架,但也可以用于 Objective C 和 Swift 项目。在这个文档中,我们将向您展示如何通过我们的超级简化类,只需少量代码即可在几分钟内使您的应用程序获得头像支持。但我们也将进一步详细说明,因为这个框架可以为您提供所有 Ovatar 功能的完全控制权。让我们开始吧…
要开始在任何项目中使用 Ovatar,您必须首先获得一个 应用密钥。这可以通过在 注册ovatar.io 上注册然后创建一个应用程序来完成。
注意 Ovatar 仍在 BETA 测试中,所以请在遇到任何问题时告诉我们,并且请注意,框架的一些方面可能会在不通知的情况下更改。因此,我们建议使用 coccopods 版本控制。
Ovatar 可以通过下载仓库并添加所有 OvatarIcon 标头和实现文件来手动安装。 设置
或者
通过 Coccopods 添加项目(推荐)
pod 'Ovatar-iOS'
入门
Swift
导入OOvatar
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { OOvatar.sharedInstance(withAppKey: "app_key") OOvatar.sharedInstance().setDebugging(true) return true }
Objective C
#import "OOvatar.h"
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [OOvatar sharedInstanceWithAppKey:@"app_key"]; [[OOvatar sharedInstance] setDebugging:true];return true;
}
为了让您在应用中快速轻松地设置头像,我们设计了 OOvatarIcon。这是一个功能强大的类,可以处理... 头像图标(简单方式)
添加 OvatarIcon
添加 OOvatarIcon 框架 Swift
import OOvatarIcon
var ovatar: OOvatarIcon?
ovatar = OOvatarIcon(frame: CGRect(x: (bounds.size.width / 2) - 100.0, y: (bounds.size.height / 2) - 100.0, width: 200.0, height: 200.0)) ovatar?.placeholder = UIImage(named: "a_custom_placeholder_image") ovatar?.oicondelegate = self ovatar?.hasaction = true ovatar?.preview = false ovatar?.allowsphotoediting = true ovatar?.onlyfaces = false addSubview(headerOvatar) ovatar?.imageDownload(withQuery: "[email protected]")
Objective C
.h
添加 OOvatarIcon 框架
#import "OOvatarIcon/OOvatarIcon.h"
@property (nonatomic, strong) OOvatarIcon *ovatar;
.m
self.ovatar = [[OOvatarIcon alloc] initWithFrame:CGRectMake((self.bounds.size.width / 2) - 100.0, (self.bounds.size.height / 2) - 100.0, 200.0, 200.0)]; self.ovatar.placeholder = [UIImage imageNamed:@"a_custom_placeholder_image"]; self.ovatar.oicondelegate = self; self.ovatar.hasaction = true; self.ovatar.preview = false; self.ovatar.allowsphotoediting = true; self.ovatar.onlyfaces = false; [self addSubview:self.headerOvatar];
让我们获取那个 Ovatar!
通过关键字、电子邮件地址或电话号码查询
Ovatar 允许您轻松查询使用 app_key 上传的图像(键的使用),但您也可以通过 电子邮件地址 或 电话号码 查询 Ovatar 图像,所有这些都可以通过调用实现。
Swift
ovatar?.imageDownload(withQuery: "[email protected]")
Objective C
[self.ovatar setOvatarImage:@"[email protected]" phonenumber:@"+4477402847283" fullname:@"Tom Hanks" key:@"[upload_key]" originalImage:@"http://mywebsite.com/user/useravatar.jpeg"];
注意 除了传递查询之外,您还可以添加一个 'name'。这不会通过名称查询用户,但允许您存储用户姓名以供参考,既在 Ovatar 控板 中,也可以在未来调用图像时进行参考。
注意 向 originalImage
传递原始图像 URL 会首先将此图像迁移到 Ovatar。如果您不想迁移图像,请传递 nil
。
Swift
ovatar?.imageDownload(withQueryียونیک کد با استفاده از URL
Objective C
[[self.ovatar imageDownloadWithQuery:@" Brilliant!
注意 如果你希望查询键和电子邮件地址作为后备,请多次添加此方法。
Swift
ovatar?.imageDownload(withQuery: "[email protected]") //email address query ovatar?.imageDownload(withQuery: "+44000000000000")//uk phone number query ovatar?.imageDownload(withQuery: "my_uploaded_ovatar_key")//query by key
Objective C
[self.ovatar imageDownloadWithQuery:@"[email protected]"]; //email address query [self.ovatar imageDownloadWithQuery:@"+44000000000000"]; //uk phone number query [self.ovatar imageDownloadWithQuery:@"my_uploaded_ovatar_key"]; //query by key默认情况下,类会按键加载图像。如果无法通过键找到图像,则回退到任何查询。
注意 一些用户报告说这不起作用,这是因为他们在初始化 OOvatarIcon 之前调用了它。请确保您首先将 OOvatarIcon 添加到您的项目。
设置您自己的图标
在某些情况下,您可能需要使用来自其他服务的一个头像图标。为此,您可以简单调用
Swift
ovatar?.imageSet(UIImage(named: "my_local_image.png"), animated: true)
Objective C
[self.ovatar imageSet:[UIImage imageNamed:@"my_local_image.png"] animated:TRUE]
我们建议使用 OOvatarIcon 类来选择、管理和上传新图像,但如果您确实想手动上传图像,可以通过调用这种方式来完成。 手动上传
Swift
let imagedata = .uiImageJPEGRepresentation() as? Data let metadata = ["copyright": "joe barbour"] ovatar?.imageUpdate(withImage: imagedata, info: nil)
Objective C
NSData *imagedata = UIImageJPEGRepresentation([UIImage imageNamed:@"my_selected_image.jpg"], 0.8); NSDictionary *metadata = @{@"copyright":@"joe barbour"};[self.ovatar imageUpdateWithImage:imagedata info:nil];
注意 通过查询 JSON 输出可以返回元数据,这是通过直接调用 OOvatar 类来实现的。下面将做进一步说明。
OOvatarIcon 的强大功能
如果没有图像可用,可以设置一个占位符图像。这可以通过将占位符设置为 UIImage 来完成。如果没有设置,将使用默认的 ovatar 占位符,但这是通过远程图像请求实现的。我们建议设置自己的占位符,以匹配您的 UI 并避免任何空状态。 占位符
在您的应用程序中,有时您会希望用户能够编辑/更改他们的头像,有时则不会。默认情况下,用户将无法与图像交互。但您可以通过将 编辑
hasaction = true;
设置为来更改此设置。当设置为TRUE时,轻触OOvatarIcon将调用ovatarIconWasTappedWithGesture
代理方法(有关代理回调的更多信息请参阅下文)或直接从子视图启动默认的iOS相册选择器。默认情况下,将显示相册选择器,但可以通过将presentpicker = false;
设置为来禁用它。假设您正在开发一款交友应用?那么您可能不希望用户上传关于他们的狗或假日照片,您想得到他们本人的准确照片。通过将 仅人脸
onlyfaces = true;
设置为,类会迅速检测所选图片是否包含人脸。如果有,那么图片将会上传;如果用户选择了一幅没有人脸的图片,那么将调用带有ovatarIconUploadFailedWithErrors
的代理方法并返回一个NSError
。(关于代理回调的更多信息请参阅下文)图片大小由Ovatar直接管理,但裁剪(目前)则不是。为了使操作更简单,您可以将 图片编辑
allowsphotoediting = true;
设置为,当用户从默认的iOS相册选择器中选择图片时,他们将被提供默认的iOS裁剪工具。在这里,用户可以按需调整图片大小和位置。默认情况下此选项是禁用的。OOvatarIcon使用低级动画,如在加载新图像时使用交叉淡入淡出和图标被轻触时的缩放“弹跳”。所有这些动画都可以通过调用 动画
animated = false;
来禁用。此外,为了更好地控制,您可以修改交叉淡入淡出的持续时间,将其设置为crossfade = 1.0;
。默认情况下,这是0.6。
有时头像图片可能只是作为一个参考点,可能太小看不清楚。启用预览功能后,当用户点击图片时,将能够在全屏中查看头像。这里会自动加载高分辨率的图片。这可以在任何不可编辑的 OOvatarIcon 上启用( 完整预览
hasaction = true;
)。默认情况下这是禁用的,但可以通过 preview = true;
启用。此外,您还可以在全屏视图中设置自定义标题。这可以是对用户的信息,或者任何其他内容。要添加此设置,请在代码中添加 previewcaption = "This is my Ovatar Caption"
当头像正在下载或上传时,在 OvatarIcon 上会显示一个进度滚动框/条。默认情况下这是启用的,但可以通过 加载器
progressloader = false;
禁用。为了更精确的控制,OvatarIcon 有 4 个委托回调。要启用这些回调,您必须通过 委托回调
oicondelegate = self;
声明 OOvatarIcon 为一个委托。
Swift
func ovatarIconWasTapped(withGesture gesture: UITapGestureRecognizer?) { //Called if the 'presentpicker' BOOL is set to FALSE (by default it is set to TRUE). Here you can set custom actions for the when the Ovatar Icon is tapped. }
func ovatarIconWasUpdatedSucsessfully(_ output: [AnyHashable: Any]?) { //Called if an image is uploaded successfully. }
func ovatarIconUploadFailed() throws { //Called if an image cannot be uploaded, see the documentation for error codes. }
func ovatarIconUploading(withProgress progress: Float) { //Called everytime the progress of the upload changes. The progress with displayed as in double value on a 0-100 scale. }
Objective-C
-(void)ovatarIconWasTappedWithGesture:(UITapGestureRecognizer *)gesture { //Called if the 'presentpicker' BOOL is set to FALSE (by default it is set to TRUE). Here you can set custom actions for the when the Ovatar Icon is tapped. }
-(void)ovatarIconWasUpdatedSucsessfully:(NSDictionary *)output { //Called if an image is uploaded successfully. }
-(void)ovatarIconUploadFailedWithErrors:(NSError *)error { //Called if an image cannot be uploaded, see the documentation for error codes. }
-(void)ovatarIconUploadingWithProgress:(float)progress { //Called everytime the progress of the upload changes. The progress with displayed as in double value on a 0-100 scale. }
以下设置可为您应用的任何位置设置,但我们建议在您的 调试与选项
在上传头像时存储用户的完整姓名 名称
Swift
OOvatar.sharedInstance().setName("Steve Jobs")
Objective-C
[[OOvatar sharedInstance] setName:@"Steve Jobs"];
要启用控制台调试,只需进行以下设置 调试
Swift
OOvatar.sharedInstance().setDebugging(true)
Objective-C
[[OOvatar sharedInstance] setDebugging:true];
默认情况下,如果找不到头像,Ovatar 会回退到使用 Gravatar。这可以被禁用。 Gravatar 支持
Swift
OOvatar.sharedInstance().setGravatarFallback(false)
Objective C
[[OOvatar sharedInstance] setGravatarFallback:false];
当换头像的图片首次下载时,它会被保存到本地缓存中。这样做是为了防止不必要的服务器调用。缓存不可禁用,但可以通过设置以下方式来更改过期时间: 缓存
Swift
OOvatar.sharedInstance().setCacheExpirySeconds(60 * 60 * 4)//以秒为单位
Objective C
[[OOvatar sharedInstance] setCacheExpirySeconds:60*60*4];//以秒为单位