美文网首页iOS开发
快速集成登录页面

快速集成登录页面

作者: 熊猫小贼_ | 来源:发表于2016-10-31 16:03 被阅读0次

    一个可以快速集成的登录页面,通过获取验证码登录,以及登录页面的一个服务条款和隐私条款的跳转!纯代码布局页面,用到了sd_autolayout,以及自己写的几个封装的类。
    具体的实现方式直接看demo吧!

    Simulator Screen Shot 2016年10月31日 下午3.46.40.png

    几个核心的代码块说明一下
    一个是验证码倒计时这里

    -(void)startTime{
        self.isTimeing = YES;
        __block int timeout = 60; //倒计时时间 60s
        queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
        dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
        dispatch_source_set_event_handler(_timer, ^{
            if(timeout<=0){ //倒计时结束,关闭
                dispatch_source_cancel(_timer);
                dispatch_async(dispatch_get_main_queue(), ^{
                    //设置界面的按钮显示 根据自己需求设置
                    self.isTimeing = NO;
                    [VerCode setTitle:@"验证" forState:UIControlStateNormal];
                    if (phoneNum.text.length > 0) {
                        [VerCode setBackgroundColor:key_BgColorF6E];
                        VerCode.enabled = YES;
                    }
                });
            }else{
                int seconds = timeout % 61;
                NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];
                dispatch_async(dispatch_get_main_queue(), ^{
                    //设置界面的按钮显示 根据自己需求设置
                    //NSLog(@"____%@",strTime);
                    [UIView beginAnimations:nil context:nil];
                    [UIView setAnimationDuration:1];
                    [VerCode setTitle:[NSString stringWithFormat:@"%@s",strTime] forState:UIControlStateNormal];
                    [UIView commitAnimations];
                    VerCode.enabled = NO;
                    [VerCode setBackgroundColor:key_BgColorB2];
                    if (timeout == 50) {
                        canNotGetYZMLab.userInteractionEnabled = YES;
                        canNotGetYZMLab.textColor = key_BgColorF6E;
                    }
                    if (phoneNum.text.length == 0) {
                        timeout = 0;
                        passwordNum.text = @"";
                    }
                });
                timeout--;
            }
        });
        dispatch_resume(_timer);
    }
    

    一个是服务条款和隐私条款的格式

        float tw =[self widthForString:str fontSize:14 andHeight:20];
        tw =([UIScreen mainScreen].bounds.size.width-tw)/2;
        
        NSDictionary* style3 = @{@"body":[UIFont fontWithName:@"HelveticaNeue" size:12.0],
                                 @"help":[WPAttributedStyleAction styledActionWithAction:^{
                                     NSLog(@"Help action");
                                     
                                     RemarkViewController *remark = [[RemarkViewController alloc]init];
                                     remark.type =0;
                                     [self.navigationController pushViewController:remark animated:YES];
                                 }],
                                 @"settings":[WPAttributedStyleAction styledActionWithAction:^{
                                     NSLog(@"Settings action");
                                     
                                     RemarkViewController *remark = [[RemarkViewController alloc]init];
                                     remark.type = 1;
                                     [self.navigationController pushViewController:remark animated:YES];
                                 }],
                                 @"link": key_BgColorF6E};
        
        baoXian.textAlignment = NSTextAlignmentCenter;
        baoXian.textColor = key_BgColor4D;
        baoXian.attributedText = [@"点击开始使用,即表示您同意<help>服务条款</help>及<settings>隐私条款</settings>" attributedStringWithStyleBook:style3];
    

    demo地址:https://github.com/shaoxionghua/CreatLogion

    相关文章

      网友评论

        本文标题:快速集成登录页面

        本文链接:https://www.haomeiwen.com/subject/fodputtx.html