1、运行示例程序,会看到如下画面





ios 仿微博界面 iphone自带微博_新浪微博




2、点击测试按钮,会看到如下画面,以模态的方式,展现出指定的服务。可以看到,mail图标没有,这是模拟器的一个bug。其中我们可以看到有Twitter,Facebook,新浪微博等服务。这里显示的内容会根据你指定的对象来进行限定。



ios 仿微博界面 iphone自带微博_微博_02




3、我们点击新浪微博,会看到如下画面,这个画面调用了SLComposeViewController,关于SLComposeViewController的详细信息请看下面连接:


iOS6新特征:Social Framework 参考之SLComposeViewController

iOS6新特征:SLComposeViewController[新浪微博]使用示例


ios 仿微博界面 iphone自带微博_iPhone_03






下面大致介绍一下 UIActivityViewController的使用




1、使用范围

目前只能以模态的方式显示



2、如何使用


1)定义ActivityItems,并初始化,这里我们给ActivityItems初始化了一个字符串,一个图片,还有一个URL。



2)初始化一个UIActivityViewController,使用第一步骤定义的ActivityItems进行初始化,这个参数是必须要有的,不能为空。而第二个参数applicationActivities可以为nil,详细内容可以参考 iOS6新特征:UIActivityViewController类参考




3)给activityVC的属性completionHandler写一个block。用以UIActivityViewController执行结束后,被调用,做一些后续处理。



4)以模态的方式展现activityVC。


- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.shareImage=[UIImage imageNamed:@"girl.jpg"];
    self.shareText=@"现在较为蛋疼的是 用ios6自带的social.framework 发出来的 在微博来源会显示是ios而不是iphoneX 而且如果默认输入字数如果超过了限制  他会不显示  略坑爹的说";
    // Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

//分享
- (IBAction)click:(id)sender {
    NSLog(@"111");
    NSArray *activityItems;
    if(self.shareImage){
        activityItems=@[self.shareText,self.shareImage];
    }else{
        activityItems=@[self.shareText];
    }

    
    UIActivityViewController* aVC=[[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
    
    // 写一个bolck,用于completionHandler的初始化
    UIActivityViewControllerCompletionHandler myBlock = ^(NSString *activityType,BOOL completed) {
        NSLog(@"%@", activityType);
        
        if(completed) {
            NSLog(@"completed");
        } else
        {
            NSLog(@"cancled");
        }
            [aVC dismissViewControllerAnimated:YES completion:Nil];
        };
  
    // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
    aVC.completionHandler = myBlock;    
    
    [self presentViewController:aVC animated:YES completion:nil];
}

  iOS6新特征:SLComposeViewController [新浪微博] 使用示例


下图中可以输入文字,url,图片(注,这里图片只给出了一个路径,在实际app中,图片来源可能是图片拾取器或者照相机)


ios 仿微博界面 iphone自带微博_iPhone_04





当点击发送至新浪微博按钮时,会看到下面的画面效果



ios 仿微博界面 iphone自带微博_新浪微博_05




下面大致介绍一下 SLComposeViewController 的使用


1、使用范围

目前只能以模态的方式显示




2、如何使用
     a)添加Social.framework至工程如下图所示




ios 仿微博界面 iphone自带微博_iPhone_06



      


     b)添加 #import<Social/Social.h>到相应的文件中




    c)关键代码如下所示


主要步骤:


1)判断服务器是否可以访问


        使用方法isAvailableForServiceType:


2)使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller


        其中


        SLServiceTypeFacebook 就是 Facebook


        SLServiceTypeTwitter 就是 Twitter


        SLServiceTypeWeibo 就是微博


     3)写一个bolck,用于completionHandler的初始化

4)给view controller初始化默认的图片,url,文字信息


5)以模态的方式展现view controller


// 发送新浪微博
- (IBAction)weiboClick:(id)sender {
    // 首先判断服务器是否可以访问
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
        NSLog(@"Available");
        
        // 使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller
        SLComposeViewController *socialVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
        
        // 写一个bolck,用于completionHandler的初始化
        SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result) {
            if (result == SLComposeViewControllerResultCancelled) {
                NSLog(@"cancelled");
            } else
            {
                NSLog(@"ok");
            }
            [socialVC dismissViewControllerAnimated:YES completion:Nil];
        };
        // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
        socialVC.completionHandler = myBlock;
        
        // 给view controller初始化默认的图片,url,文字信息
        UIImage *image = [UIImage imageNamed:@"girl.jpg"];
        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
        
        [socialVC setInitialText:self.shareText];
        [socialVC addImage:image];
        [socialVC addURL:url];
        
        // 以模态的方式展现view controller
        [self presentViewController:socialVC animated:YES completion:Nil];
        
    } else {
        NSLog(@"UnAvailable");
    }
    
}





ios 仿微博界面 iphone自带微博_新浪微博




2、点击测试按钮,会看到如下画面,以模态的方式,展现出指定的服务。可以看到,mail图标没有,这是模拟器的一个bug。其中我们可以看到有Twitter,Facebook,新浪微博等服务。这里显示的内容会根据你指定的对象来进行限定。



ios 仿微博界面 iphone自带微博_微博_02




3、我们点击新浪微博,会看到如下画面,这个画面调用了SLComposeViewController,关于SLComposeViewController的详细信息请看下面连接:


iOS6新特征:Social Framework 参考之SLComposeViewController

iOS6新特征:SLComposeViewController[新浪微博]使用示例



ios 仿微博界面 iphone自带微博_iPhone_03






下面大致介绍一下 UIActivityViewController的使用




1、使用范围

目前只能以模态的方式显示



2、如何使用


1)定义ActivityItems,并初始化,这里我们给ActivityItems初始化了一个字符串,一个图片,还有一个URL。


2)初始化一个UIActivityViewController,使用第一步骤定义的ActivityItems进行初始化,这个参数是必须要有的,不能为空。而第二个参数applicationActivities可以为nil,详细内容可以参考 iOS6新特征:UIActivityViewController类参考。




3)给activityVC的属性completionHandler写一个block。用以UIActivityViewController执行结束后,被调用,做一些后续处理。



4)以模态的方式展现activityVC。


- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.shareImage=[UIImage imageNamed:@"girl.jpg"];
    self.shareText=@"现在较为蛋疼的是 用ios6自带的social.framework 发出来的 在微博来源会显示是ios而不是iphoneX 而且如果默认输入字数如果超过了限制  他会不显示  略坑爹的说";
    // Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

//分享
- (IBAction)click:(id)sender {
    NSLog(@"111");
    NSArray *activityItems;
    if(self.shareImage){
        activityItems=@[self.shareText,self.shareImage];
    }else{
        activityItems=@[self.shareText];
    }

    
    UIActivityViewController* aVC=[[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
    
    // 写一个bolck,用于completionHandler的初始化
    UIActivityViewControllerCompletionHandler myBlock = ^(NSString *activityType,BOOL completed) {
        NSLog(@"%@", activityType);
        
        if(completed) {
            NSLog(@"completed");
        } else
        {
            NSLog(@"cancled");
        }
            [aVC dismissViewControllerAnimated:YES completion:Nil];
        };
  
    // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
    aVC.completionHandler = myBlock;    
    
    [self presentViewController:aVC animated:YES completion:nil];
}

  iOS6新特征:SLComposeViewController [新浪微博] 使用示例


下图中可以输入文字,url,图片(注,这里图片只给出了一个路径,在实际app中,图片来源可能是图片拾取器或者照相机)


ios 仿微博界面 iphone自带微博_iPhone_04





当点击发送至新浪微博按钮时,会看到下面的画面效果



ios 仿微博界面 iphone自带微博_新浪微博_05




下面大致介绍一下 SLComposeViewController 的使用


1、使用范围

目前只能以模态的方式显示




2、如何使用
     a)添加Social.framework至工程如下图所示




ios 仿微博界面 iphone自带微博_iPhone_06



      


     b)添加 #import<Social/Social.h>到相应的文件中




    c)关键代码如下所示


主要步骤:


1)判断服务器是否可以访问


        使用方法isAvailableForServiceType:


2)使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller


        其中


        SLServiceTypeFacebook 就是 Facebook


        SLServiceTypeTwitter 就是 Twitter


        SLServiceTypeWeibo 就是微博


     3)写一个bolck,用于completionHandler的初始化

4)给view controller初始化默认的图片,url,文字信息


5)以模态的方式展现view controller


// 发送新浪微博
- (IBAction)weiboClick:(id)sender {
    // 首先判断服务器是否可以访问
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
        NSLog(@"Available");
        
        // 使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller
        SLComposeViewController *socialVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
        
        // 写一个bolck,用于completionHandler的初始化
        SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result) {
            if (result == SLComposeViewControllerResultCancelled) {
                NSLog(@"cancelled");
            } else
            {
                NSLog(@"ok");
            }
            [socialVC dismissViewControllerAnimated:YES completion:Nil];
        };
        // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
        socialVC.completionHandler = myBlock;
        
        // 给view controller初始化默认的图片,url,文字信息
        UIImage *image = [UIImage imageNamed:@"girl.jpg"];
        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
        
        [socialVC setInitialText:self.shareText];
        [socialVC addImage:image];
        [socialVC addURL:url];
        
        // 以模态的方式展现view controller
        [self presentViewController:socialVC animated:YES completion:Nil];
        
    } else {
        NSLog(@"UnAvailable");
    }
    
}




ios 仿微博界面 iphone自带微博_iPhone_04





当点击发送至新浪微博按钮时,会看到下面的画面效果



ios 仿微博界面 iphone自带微博_新浪微博_05




下面大致介绍一下 SLComposeViewController 的使用


1、使用范围

目前只能以模态的方式显示




2、如何使用
     a)添加Social.framework至工程如下图所示




ios 仿微博界面 iphone自带微博_iPhone_06



      


     b)添加 #import<Social/Social.h>到相应的文件中




    c)关键代码如下所示


主要步骤:


1)判断服务器是否可以访问


        使用方法isAvailableForServiceType:


2)使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller


        其中


        SLServiceTypeFacebook 就是 Facebook


        SLServiceTypeTwitter 就是 Twitter


        SLServiceTypeWeibo 就是微博


     3)写一个bolck,用于completionHandler的初始化

4)给view controller初始化默认的图片,url,文字信息


5)以模态的方式展现view controller


// 发送新浪微博
- (IBAction)weiboClick:(id)sender {
    // 首先判断服务器是否可以访问
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
        NSLog(@"Available");
        
        // 使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller
        SLComposeViewController *socialVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
        
        // 写一个bolck,用于completionHandler的初始化
        SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result) {
            if (result == SLComposeViewControllerResultCancelled) {
                NSLog(@"cancelled");
            } else
            {
                NSLog(@"ok");
            }
            [socialVC dismissViewControllerAnimated:YES completion:Nil];
        };
        // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
        socialVC.completionHandler = myBlock;
        
        // 给view controller初始化默认的图片,url,文字信息
        UIImage *image = [UIImage imageNamed:@"girl.jpg"];
        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
        
        [socialVC setInitialText:self.shareText];
        [socialVC addImage:image];
        [socialVC addURL:url];
        
        // 以模态的方式展现view controller
        [self presentViewController:socialVC animated:YES completion:Nil];
        
    } else {
        NSLog(@"UnAvailable");
    }
    
}