REComposeViewController 2.3.2

REComposeViewController 2.3.2

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

Roman Efimov 维护。



  • 作者
  • Roman Efimov

模仿 iOS 6.0 中引入的 SLComposeViewController 功能。您可以为任何社交网络创建作曲器。REComposeViewController 不提供分享逻辑,只提供其视觉部分。

REComposeViewController Screenshot

要求

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

示例

在 Xcode 中构建并运行 REComposeViewControllerExample 项目,查看 REComposeViewController 的实际应用。

安装

手动安装

您只需要将 REComposeViewController 文件复制到您的项目中,并在将使用它的类的顶部添加 #include "REComposeViewController.h" 即可。

示例用法

REComposeViewController *composeViewController = [[REComposeViewController alloc] init];
composeViewController.title = @"Social Network";
composeViewController.hasAttachment = YES;
composeViewController.attachmentImage = [UIImage imageNamed:@"Flower.jpg"];
composeViewController.text = @"Hi there!";
[composeViewController presentFromRootViewController];

设置完成处理程序

composeViewController.completionHandler = ^(REComposeViewController *composeViewController, REComposeResult result) {
    [composeViewController dismissViewControllerAnimated:YES completion:nil];

    if (result == REComposeResultCancelled) {
        NSLog(@"Cancelled");
    }

    if (result == REComposeResultPosted) {
        NSLog(@"Text: %@", composeViewController.text);
    }
};

或者,您可能想将控制器设置为符合 REComposeViewControllerDelegate 协议,以便在用户取消/发布时接收通知。

...
composeViewController.delegate = self;
...
- (void)composeViewController:(REComposeViewController *)composeViewController didFinishWithResult:(REComposeResult)result
{
    [composeViewController dismissViewControllerAnimated:YES completion:nil];

    if (result == REComposeResultCancelled) {
        NSLog(@"Cancelled");
    }

    if (result == REComposeResultPosted) {
        NSLog(@"Text = %@", composeViewController.text);
    }
}

自定义

可以通过 UIAppearance 来自定义 REComposeViewController 导航栏。您使用 UIAppearance 协议来获取某个类的外观代理。您通过向类的外观代理发送外观修改消息来自定义类的实例的外观。

示例

[composeViewController.navigationBar setBackgroundImage:[UIImage imageNamed:@"bg"] forBarMetrics:UIBarMetricsDefault];
composeViewController.navigationItem.leftBarButtonItem.tintColor = [UIColor colorWithRed:60/255.0 green:165/255.0 blue:194/255.0 alpha:1];
composeViewController.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:29/255.0 green:118/255.0 blue:143/255.0 alpha:1];

致谢

部分基于 DEFacebookComposeViewControllerDETweetComposeViewController

联系

Roman Efimov

许可

REComposeViewController 在 MIT 许可下可用。

版权 © 2013 Roman Efimov。

特此授予任何获得此软件及相关文档副本(以下称为“软件”)的个人在此软件上不受限制的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售副本的权利,并允许向提供软件的个人以这种方式使用软件,但必须遵守以下条件

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

软件按“现状”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、可用于特定目的和非侵犯性的担保。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任承担责任,无论这些责任产生于合同行为、侵权行为或其他行为,无论其与软件或使用软件有关、源于软件或其他软件的使用或处置。