IOS - 登录界面

来源:互联网 发布:软件人才缺口多少 编辑:程序博客网 时间:2024/05/24 06:22

登录界面:
手机号+密码+验证码 -> 登录
忘记密码, 快速注册


代码

////  UserLoginViewController.h//  SymptomChecker////  Created by wang on 2015-7-20.//#import "UserAccountBaseViewController.h"@interface UserLoginViewController : UserAccountBaseViewController@property (nonatomic, NI_STRONG) User* currentUser;@end
////  UserLoginViewController.m//  SymptomChecker////  Created by wang on 2015-7-20.//#import "UserLoginViewController.h"#import "UserRegisterViewController.h"#import "UserLoginViewController.h"#import "ThirdpartyLoginManager.h"#import "ThirdpartyLoginView.h"#import "ForgetPasswordViewController.h"#define kViewRadio viewWidth()/320@interface UserLoginViewController () <ThirdpartyLoginViewDelegate>@end@implementation UserLoginViewController{    AccountTextInputElement* _phoneNo; // 手机号    AccountTextInputElement* _password; // 密码    AccountTextInputElement* _code; // 验证码    NINetworkImageView* _codeImage; // 验证图片    NSString* _source;}- (id) initWithNavigatorURL:(NSURL *)URL query:(NSDictionary *)query {    self = [super initWithNavigatorURL:URL query:query];    if (self) {        self.title = @"登录";        _source = query[@"source"];        self.flurryTitle = @"login";    }    // 刷新验证码    [[NSNotificationCenter defaultCenter] addObserver:self                                             selector:@selector(msgCodeChanged)                                                 name:kMsgCodeRefresh                                               object:nil];    return self;}- (void) dealloc {    [[NSNotificationCenter defaultCenter] removeObserver:self];}- (void)viewDidLoad {    [super viewDidLoad];    [self setupNaviBar]; // 设置NaviBar    // Logo    CGRect logoRect = CGRectMake(12*kViewRadio,                                 20*kViewRadio,                                 viewWidth()-24*kViewRadio,                                 100*kViewRadio);    UIImageView *logoView=[[UIImageView alloc] initWithFrame:logoRect];    [logoView setImage:[UIImage imageNamed:@"mat_logo_login.png"]];    [logoView setContentMode:UIViewContentModeScaleAspectFit];    [self.CYScrollView addSubview:logoView];    // 组合输入    UIView *formView = [self formAreaWithFormElements:[self getFormElements]];    [self.CYScrollView addSubview:formView];    CGRect codeRect = CGRectMake(formView.left+204*kViewRadio,                                 formView.top+104*kViewRadio,                                 80*kViewRadio,                                 45*kViewRadio);    // 验证码    _codeImage = [[NINetworkImageView alloc] initWithFrame:codeRect];    [_codeImage setDefaultImage:[CYResource load:@"icon_empty_content"]];    [_codeImage setContentMode: UIViewContentModeScaleAspectFit];    [self.CYScrollView addSubview: _codeImage];    // 登录按钮    CGRect submitRect = CGRectMake(16*kViewRadio,                                   formView.bottom + 16*kViewRadio,                                   viewWidth() - 32*kViewRadio,                                   44*kViewRadio);    FilledColorButton *submitBtn = [[FilledColorButton alloc] initWithFrame:submitRect                                                                      color:RGBCOLOR_HEX(0x39d167)                                                           highlightedColor:RGBCOLOR_HEX(0x27b953)                                                                  textColor:[UIColor whiteColor]                                                                      title:@"登录"                                                                   fontSize:16*kViewRadio                                                                      isBold:YES];    [submitBtn addTarget:self                  action:@selector(onSubmitButtonClicked:)        forControlEvents:UIControlEventTouchUpInside];    [self.CYScrollView addSubview:submitBtn];    CGRect forgetRect = CGRectMake(0,                                   submitBtn.bottom+32*kViewRadio,                                   viewWidth(),                                   20*kViewRadio);    // 忘记密码    UIButton *forgetBtn = [[UIButton alloc] initWithFrame:forgetRect];    [forgetBtn setTitle:@"忘记密码" forState:UIControlStateNormal];    [forgetBtn setTitleColor:RGBCOLOR_HEX(0x666666) forState:UIControlStateNormal];    [forgetBtn.titleLabel setFont:[UIFont systemFontOfSize:12*kViewRadio]];    [forgetBtn setCenterX:self.view.width/2];    [forgetBtn setBackgroundColor:[UIColor clearColor]];    [forgetBtn addTarget:self                  action:@selector(onForgetBtnClicked)        forControlEvents:UIControlEventTouchUpInside];    [self.CYScrollView addSubview:forgetBtn];    CGRect promptRect = CGRectMake(0,                                   forgetBtn.bottom+32*kViewRadio,                                   viewWidth(),                                   20*kViewRadio);    // 提示信息    UILabel *promptLabel = [[UILabel alloc] initWithFrame:promptRect];    [promptLabel setText:@"技术支持来自XX移动健康"];    [promptLabel setTextColor:[UIColor blackColor]];    [promptLabel setTextAlignment:NSTextAlignmentCenter];    [promptLabel setFont:[UIFont systemFontOfSize: 10*kViewRadio]];    [self.CYScrollView addSubview:promptLabel];    [self.CYScrollView setContentSize:self.view.bounds.size];}// 快速注册- (void)setupNaviBar {    CGRect regRect = CGRectMake(0, 0,                                80*kViewRadio, 40*kViewRadio);    NaviButton* regBtn = [[NaviButton alloc] initWithFrame:regRect];    [regBtn setTitle:@"快速注册" forState:UIControlStateNormal];    [regBtn setTitleColor:RGBCOLOR_HEX(0xffffff) forState:UIControlStateNormal];    [regBtn addTarget: self               action: @selector(onRegisterBtnClicked)     forControlEvents: UIControlEventTouchUpInside];    [self setRightNavigationButton: regBtn];}//// 点击注册"按钮"//- (void) onRegisterBtnClicked {    UserRegisterViewController* controller =    [[UserRegisterViewController alloc] initWithNavigatorURL:nil                                                       query:nil];    //    controller.dismissBlock = self.dismissBlock;    [self.navigationController pushViewController: controller animated: NO];}// 重载- (UIView *)formAreaWithFormElements:(NSArray *)formElements {    // 设置UITableView    self.tableView.backgroundColor = [UIColor clearColor];    self.tableView.tableFooterView = nil;    self.tableView.tableHeaderView = nil;    self.tableView.backgroundView = nil;    self.tableView.rowHeight = 50*kViewRadio;    self.tableView.frame = CGRectMake(0,1,viewWidth(),formElements.count*50*kViewRadio);    self.tableView.autoresizingMask = UIViewAutoresizingNone;    self.tableView.bounces = NO;    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;    NITableViewModel* model = [[NITableViewModel alloc] initWithSectionedArray:formElements                                                                      delegate:self.cellFactory];    self.tableViewModel = model;    CGFloat inputAreaHeight = formElements.count*50*kViewRadio+ 1;    CGRect inputRect = CGRectMake(16*kViewRadio,                                  140*kViewRadio,                                  viewWidth()-32*kViewRadio,                                  inputAreaHeight);    // 输入框border    UIView *inputArea = [[UIView alloc] initWithFrame:inputRect];    inputArea.clipsToBounds = YES;    inputArea.layer.cornerRadius = 3;    inputArea.layer.borderWidth = 0.5;    inputArea.layer.borderColor = RGBCOLOR_HEX(0xb6b6b6).CGColor;    [inputArea addSubview:self.tableView];    return inputArea;}// 输入组合- (NSArray*) getFormElements {    // 手机号    _phoneNo = [AccountTextInputElement textInputElementWithID:0                                               placeholderText:@"手机号"                                                         value:nil];    _phoneNo.style = kUserCenterItemTop;    // 密码    _password = [AccountTextInputElement passwordInputElementWithID:0                                                    placeholderText:@"密码"                                                              value: nil];    _password.style = kUserCenterItemMiddle;    _password.delegate = self;    // 验证码    _code = [AccountTextInputElement textInputElementWithID:0                                            placeholderText:@"验证码"                                                      value:nil];    _code.style = kUserCenterItemBottom;    return @[_phoneNo, _password, _code];}// 忘记密码- (void) onForgetBtnClicked {    NIDPRINTMETHODNAME();    ForgetPasswordViewController* controller =    [[ForgetPasswordViewController alloc] initWithNavigatorURL:Nil                                                         query:nil];    [self.navigationController pushViewController: controller animated:YES];}// 登录按钮事件- (void) onSubmitButtonClicked: (UIButton*) button {    /**     *  点击登录时     *  首先判断用户是否已经自动登录,如果已经自动登录成功,则直接dismis登录界面     *  如果没有登录,则进行登录的逻辑     */    if ([User hasLoggedIn]) {        [SVProgressHUD showSuccessWithStatus:@"账号已登录"                                    duration:1.2];        [self dismissController];        return;    }    _currentUser = [User currentUser];    [_currentUser setMatMsgCode: _code.value];    if (_phoneNo.value.length == 0) {        [SVProgressHUD showErrorWithStatus: @"请输入您的手机号"];    } else if (_password.value.length == 0) {        [SVProgressHUD showErrorWithStatus: @"请输入密码"];    } else { // 登录调用部分        [self.view endEditing:YES];        [[ThirdpartyLoginManager sharedInstance] loginToServerWithUsername:ENSURE_NOT_NULL(_phoneNo.value)                                                                  password:ENSURE_NOT_NULL(_password.value)                                                                    method:kSNSLoginMethodOther                                                                  delegate:self];    }    [ChunyuClick from:self.flurryTitle to:@"login"];}// 验证码- (void) msgCodeChanged {    _currentUser = [User currentUser];    [_currentUser loadFromFile];    [_codeImage setPathToNetworkImage: [_currentUser matMsgCodeUrl]];}#pragma mark - third party login view delegate// 未使用- (void)loginWithMethod:(SNSLoginMethod)method {    [[ThirdpartyLoginManager sharedInstance] loginWithMethod:method delegate:self];}@end

效果
效果


娱乐

2 0
原创粉丝点击