终于开始正式的实现功能了,常用的基本上都接触过了,现在就是运用,实现.下面来看看我的成果吧! 首先,需要画界面,因为IOS图形化特别严重,所以我们首先要做的是页面布局,下面来看看我的页面布局吧:
这个界面主要分三块,上面的用户名和密码用一个View加载,下面是两个按钮,包括登录和忘记密码两个按钮,最下面的是第三方登录.最上面的导航栏与下面的tabar 这是之前写好的.下面来先看看我的界面代码吧:
<span style="font-size:18px;"> /*获取屏幕大小*/ float width = [[UIScreen mainScreen] bounds].size.width; float height = [[UIScreen mainScreen] bounds].size.height; /*创建一个view,来承载注册信息控件*/ UIView *infoView = [[UIView alloc]initWithFrame:CGRectMake(0, height/10+20, width, height/5)]; infoView.backgroundColor = [UIColor whiteColor]; [self.view addSubview:infoView]; UIImageView *userImg = [[UIImageView alloc]initWithFrame:CGRectMake(width/20+10, height/16-15, 25, 25)]; userImg.layer.borderColor = [UIColor whiteColor].CGColor; [userImg setImage:[UIImage imageNamed:@"user"]]; [infoView addSubview:userImg]; //用户名文本框 self.user = [[UITextField alloc]initWithFrame:CGRectMake(width/8+30, height/16-25, 200, 50)]; self.user.placeholder = @"用户名/手机号"; //_userName = user.text; [infoView addSubview:self.user]; /*添加一条线*/ UIView *line1 = [[UIView alloc]initWithFrame:CGRectMake(15, height/9-10, width-30, 1)]; line1.backgroundColor =[UIColor grayColor]; [infoView addSubview:line1]; /*添加锁图片*/ UIImageView *passWord = [[UIImageView alloc]initWithFrame:CGRectMake(width/20+10, height/16+35, 25, 25)]; [passWord setImage:[UIImage imageNamed:@"password.png"]]; [infoView addSubview:passWord]; /*添加密码文本框*/ self.password = [[UITextField alloc]initWithFrame:CGRectMake(width/8+30, height/16+35, 200, 30)]; self.password.placeholder = @"密码"; //password = password.text; [infoView addSubview:self.password]; /*添加登录按钮*/ UIButton *loginBtn = [[UIButton alloc]initWithFrame:CGRectMake(width/10, height/3+30, width-width/5, 40)]; //loginBtn.backgroundColor = [UIColor redColor]; [loginBtn setImage:[UIImage imageNamed:@"login"] forState:UIControlStateNormal]; [loginBtn addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:loginBtn]; //忘记密码按钮 //UIButton *forget= [[UIButton alloc]initWithFram:CGRectMake(width/10, height/10+80, 60, 30)]; UIButton *forget = [[UIButton alloc]initWithFrame:CGRectMake(width/10, height/3+80, 80, 15)]; //[[forget setImage:[UIImage imageNamed:@"forget"]forState:UIControlStateNormal]]]; [forget setImage:[UIImage imageNamed:@"forget"] forState:UIControlStateNormal]; [forget addTarget:self action:@selector(forgetPassword) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:forget]; //添加第二条线 UIView *line3 = [[UIView alloc]initWithFrame:CGRectMake(0, height-height/3-35, width/3, 1)]; line3.backgroundColor =[UIColor grayColor]; [self.view addSubview:line3]; /*添加第三方入口*/ UILabel *otherExtrence =[[UILabel alloc]initWithFrame:CGRectMake(width/3, height-height/3-50, 150, 30)]; [otherExtrence setText:@" 或第三方登录"]; otherExtrence.font = [UIFont boldSystemFontOfSize:14.0f]; otherExtrence.textColor = [UIColor grayColor]; [self.view addSubview:otherExtrence]; /*添加第三条线*/ UIView *line4 = [[UIView alloc]initWithFrame:CGRectMake(width-width/3, height-height/3-35, width/3, 1)]; line4.backgroundColor =[UIColor grayColor]; [self.view addSubview:line4]; /*添加第三方入口*/ /*微信入口*/ UIButton *weChat = [[UIButton alloc]initWithFrame:CGRectMake(width/5-5, height-height/4-40, 50, 50)]; [weChat setImage:[UIImage imageNamed:@"weChat"] forState:UIControlStateNormal]; [weChat addTarget:self action:@selector(weChatLogin) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:weChat]; UILabel *weChatLabel = [[UILabel alloc]initWithFrame:CGRectMake(width/5-5, height-height/4, 50, 30)]; [weChatLabel setText:@"微信登录"]; weChatLabel.font=[UIFont boldSystemFontOfSize:12.0f]; [weChatLabel setTextColor:[UIColor grayColor]]; [self.view addSubview:weChatLabel]; /*微博登陆*/ UIButton *weBlog = [[UIButton alloc]initWithFrame:CGRectMake(width/2-20, height-height/4-40, 50, 50)]; [weBlog setImage:[UIImage imageNamed:@"weBlog"]forState:UIControlStateNormal]; [weBlog addTarget:self action:@selector(weBlogLogin) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:weBlog]; UILabel *weBlogLabel = [[UILabel alloc]initWithFrame:CGRectMake(width/2-20, height-height/4, 50, 30)]; [weBlogLabel setText:@"微博登录"]; weBlogLabel.font = [UIFont boldSystemFontOfSize:12.0f]; //设置字体颜色灰色 [weBlogLabel setTextColor:[UIColor grayColor]]; [self.view addSubview:weBlogLabel]; /*QQ登陆*/ UIButton *qq = [[UIButton alloc]initWithFrame:CGRectMake(width-width/4-20,height-height/4-40, 50, 50)]; //[qq setImage:[UIImage imageNamed:@"qq"]forState:UIControlStateNormal]; [qq setImage:[UIImage imageNamed:@"QQ"] forState:UIControlStateNormal]; [qq addTarget:self action:@selector(qqLogin) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:qq]; UILabel *qqLabel = [[UILabel alloc]initWithFrame:CGRectMake(width-width/4-20, height-height/4, 50, 30)]; [qqLabel setText:@"QQ登陆"]; qqLabel.font = [UIFont boldSystemFontOfSize:12.0f]; [qqLabel setTextColor:[UIColor grayColor]]; [self.view addSubview:qqLabel]; //加载注册 [self loadRegister]; </span>
这段代码主要是对于主界面的各种控件的加载,布局,下面来看看我的实现登录功能的代码,需要调别人的接口:
<span style="font-size:18px;"> NSString *strURL = LOGIN; //进行编码 strURL =[strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //申请管理队列 AFHTTPRequestOperationManager *manager_login = [AFHTTPRequestOperationManager manager]; //请求对象和响应对象 manager_login.responseSerializer = [AFHTTPResponseSerializer serializer]; manager_login.requestSerializer = [AFHTTPRequestSerializer serializer]; manager_login.requestSerializer.timeoutInterval =5; //放置在字典表里面的参数 NSDictionary *parameter = @{@"username":self.user.text, @"password":self.password.text}; //提交注册信息 [manager_login POST:strURL parameters:parameter constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { NSLog(@"123456"); } //设置提交成功后的操作 success:^(AFHTTPRequestOperation *operation, id responseObject) { NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; NSLog(@"返回数据:%@",str); } //提交失败的操作! failure:^(AFHTTPRequestOperation *operation, NSError *error) { MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; hud.labelText = @"网络开小差啦~"; hud.dimBackground = NO; hud.mode = MBProgressHUDModeText; hud.animationType = MBProgressHUDAnimationFade; [hud hide:YES afterDelay:1.2]; // [self.loadView.header endRefreshing]; self.user.text = @""; self.password.text = @""; }]; } //登录,页面跳转 MeViewController *MVC = [[MeViewController alloc] init]; [self.navigationController pushViewController:MVC animated:YES]; [ShareData sharedShareData].isLogin = YES;</span>
整体上来看,常规的一些还是比较简单的,最难得是各种动画的实现,特别多,任重而道远啊,继续加油!