iOS 自定义微信分享底部弹出选择界面

//

//  ShareCustom.h

//  HengTaiXinGolf

//

//  Created by 欧阳荣 on 16/3/22.

//  Copyright © 2016 HengTaiXinGolf. All rights reserved.

//


#import <Foundation/Foundation.h>




@interface ShareCustom : NSObject






+(void)shareWithContent:(id)publishContent;//自定义分享界面











@end



//

//  ShareCustom.m

//  HengTaiXinGolf

//

//  Created by 欧阳荣 on 16/3/22.

//  Copyright © 2016 HengTaiXinGolf. All rights reserved.

//


#import "ShareCustom.h"

#import "WXApi.h"

//设备物理大小

#define kScreenWidth   [UIScreen mainScreen].bounds.size.width

#define kScreenHeight  [UIScreen mainScreen].bounds.size.height

#define SYSTEM_VERSION   [[UIDevice currentDevice].systemVersion floatValue]

//屏幕宽度相对iPhone6屏幕宽度的比例

#define KWidth_Scale    [UIScreen mainScreen].bounds.size.width/640.0f



@implementation ShareCustom


static id _publishContent;//类方法中的全局变量这样用(类型前面加static


/*

 自定义的分享类,使用的是类方法,其他地方只要 构造分享内容publishContent就行了

 */


+(void)shareWithContent:(id)publishContent/*只需要在分享按钮事件中 构建好分享内容publishContent传过来就好了*/

{

    _publishContent = publishContent;

    

    UIWindow *window = [UIApplication sharedApplication].keyWindow;

    

    UIView *blackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];


    blackView.backgroundColor = [UIColor colorWithRed:68/255.0 green:68/255.0 blue:68/255.0 alpha:0.85f];

    

    blackView.tag = 440;

    

    [window addSubview:blackView];

    

    UIView *shareView = [[UIView alloc] initWithFrame:CGRectMake(0,(kScreenHeight-300*KWidth_Scale), IPHONE_WIDTH, 300*KWidth_Scale)];

//    shareView.backgroundColor = [UIColor colorWithString:@"f6f6f6"];

    shareView.backgroundColor = [UIColor colorWithRed:225/255.0 green:225/255.0 blue:225/255.0 alpha:1.0];

    

    shareView.tag = 441;

    [window addSubview:shareView];

    

    

    NSArray *btnImages = @[@"wxhy", @"wxpyq"];

    

    NSArray *btnTitles = @[@"微信好友", @"微信朋友圈"];

    for (NSInteger i=0; i<[btnImages count]; i++) {

        CGFloat top = 0.0f;

        

        top = 44*KWidth_Scale;

            

        

        UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(138*KWidth_Scale+i*104*KWidth_Scale + 158 * KWidth_Scale * i, top, 104*KWidth_Scale, 104*KWidth_Scale)];


        [button setImage:[UIImage imageNamed:btnImages[i]] forState:UIControlStateNormal];

        UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(128*KWidth_Scale+i*104*KWidth_Scale + 158 * KWidth_Scale * i, top + (104 + 12)*KWidth_Scale , 124*KWidth_Scale, 28 * KWidth_Scale)];

        label.text = btnTitles[i];

        label.font = [UIFont systemFontOfSize:22*KWidth_Scale];

        label.textColor = [UIColor colorWithRed:138/255.0 green:138/255.0 blue:138/255.0 alpha:1.0];

        label.textAlignment = NSTextAlignmentCenter;

        [shareView addSubview:label];

//        [button setTitle:btnTitles[i] forState:UIControlStateNormal];

//        button.titleLabel.font = [UIFont systemFontOfSize:22*KWidth_Scale];

//        button.titleLabel.textAlignment = NSTextAlignmentCenter;

//        [button setTitleColor:[UIColor colorWithRed:138/255.0 green:138/255.0 blue:138/255.0 alpha:1.0] forState:UIControlStateNormal];

//        [button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];

//        [button setContentVerticalAlignment:UIControlContentVerticalAlignmentTop];

        // button.frame = CGRectMake(100, 100,90, 90);//buttonframe

//        button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//设置imagebutton上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-5,那么image就象上移动5个像素

//        button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//设置titlebutton上的位置(上top,左left,下bottom,右right

//我这里使用的image64*64

        

//        button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//设置button的内容横向居中。。设置contenttitleimage一起变化

//

//        [button setImageEdgeInsets:UIEdgeInsetsMake(0, 15.5*KWidth_Scale, 31*KWidth_Scale, button.titleLabel.bounds.size.width)];

//        if (SYSTEM_VERSION >= 8.0f) {

//            [button setTitleEdgeInsets:UIEdgeInsetsMake(129*KWidth_Scale,- button.titleLabel.bounds.size.width-100*KWidth_Scale*2, 0, 0)];

//        }else{

//            [button setTitleEdgeInsets:UIEdgeInsetsMake(129*KWidth_Scale,- button.titleLabel.bounds.size.width-100*KWidth_Scale*2, 0, 0)];

//        }

        

        button.tag = 331+i;

        [button addTarget:self action:@selector(shareBtnClick:) forControlEvents:UIControlEventTouchUpInside];

        [shareView addSubview:button];

    }

    

    UIButton *cancleBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, shareView.frame.size.height-80*KWidth_Scale,IPHONE_WIDTH, 80*KWidth_Scale)];

//    [cancleBtn setBackgroundImage:[UIImage imageNamed:@"IOS-取消@2x.png"] forState:UIControlStateNormal];

    cancleBtn.tag = 339;

    

    [cancleBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];


    cancleBtn.backgroundColor = kColor(246, 246, 246);

    [cancleBtn setTitle:@"取消" forState:UIControlStateNormal];

    [cancleBtn addTarget:self action:@selector(shareBtnClick:) forControlEvents:UIControlEventTouchUpInside];

    [shareView addSubview:cancleBtn];

    

    //为了弹窗不那么生硬,这里加了个简单的动画

//    shareView.transform = CGAffineTransformMakeScale(1/300.0f, 1/270.0f);

//    UIView *blackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];

    

    

    shareView.frame = CGRectMake(0,kScreenHeight, IPHONE_WIDTH, 300*KWidth_Scale);

;


    blackView.alpha = 0;

    [UIView animateWithDuration:0.35f animations:^{

//        shareView.transform = CGAffineTransformMakeScale(1, 1);


        shareView.frame = CGRectMake(0,(kScreenHeight-300*KWidth_Scale), IPHONE_WIDTH, 300*KWidth_Scale);

        blackView.alpha = 1;

    } completion:^(BOOL finished) {

        

    }];

}


+(void)shareBtnClick:(UIButton *)btn

{

    //    NSLog(@"%@",[ShareSDK version]);

    UIWindow *window = [UIApplication sharedApplication].keyWindow;

    UIView *blackView = [window viewWithTag:440];

    UIView *shareView = [window viewWithTag:441];

    

    //为了弹窗不那么生硬,这里加了个简单的动画

//    shareView.transform = CGAffineTransformMakeScale(1, 1);

    [UIView animateWithDuration:0.35f animations:^{

//        shareView.transform = CGAffineTransformMakeScale(1/300.0f, 1/270.0f);

        blackView.alpha = 0;

        shareView.frame = CGRectMake(0,kScreenHeight, IPHONE_WIDTH, 300*KWidth_Scale);


    } completion:^(BOOL finished) {

        

        [shareView removeFromSuperview];

        [blackView removeFromSuperview];

    }];

    

    

    

    int shareType = 0;

    id publishContent = _publishContent;

    

    

    switch (btn.tag) {

        case 331:

        {

//            shareType = ShareTypeWeixiSession;

            DSLog(@"微信好友");

            

            SendMessageToWXReq* req = [[SendMessageToWXReq alloc] init];

            req.text = @"这是测试发送的内容。";

            req.bText = YES;

            req.scene = WXSceneSession;

            

            [WXApi sendReq:req];

            

        }

            break;

            

        case 332:

        {

            DSLog(@"微信朋友圈");


//            shareType = ShareTypeWeixiTimeline;

        }

            break;

            

       

            

        case 339:

        {

            DSLog(@"取消");


        }

            break;

            

        default:

            break;

    }

    

    /*

     调用shareSDK的无UI分享类型,

     链接地址:http://bbs.mob.com/forum.php?mod=viewthread&tid=110&extra=page%3D1%26filter%3Dtypeid%26typeid%3D34

     */

//    [ShareSDK showShareViewWithType:shareType container:nil content:publishContent statusBarTips:YES authOptions:nil shareOptions:nil result:^(ShareType type, SSResponseState state, id<issplatformshareinfo> statusInfo, id<icmerrorinfo> error, BOOL end) {

//        if (state == SSResponseStateSuccess)

//        {

//            //            NSLog(NSLocalizedString(@"TEXT_ShARE_SUC", @"分享成功"));

//        }

//        else if (state == SSResponseStateFail)

//        {

//            UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"" message:@"未检测到客户端 分享失败" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];

//            [alert show];

//            //            NSLog(NSLocalizedString(@"TEXT_ShARE_FAI", @"分享失败,错误码:%d,错误描述:%@"), [error errorCode], [error errorDescription]);

//        }

//    }];

    

    

    

}


//

构造分享内容

//id<isscontent> publishContent = [ShareSDK content:str1

//                                   defaultContent:str1

//                                            image:nil

//                                            title:@" "

//                                              url:urlString

//                                      description:str1

//                                        mediaType:SSPublishContentMediaTypeText];

调用自定义分享

//[ShareCustom shareWithContent:publishContent];</isscontent>

//












@end




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值