利用OC纯代码开发QQ登陆界面

//

//  ViewController.m

//  QQUI

//

//  Created by kevin_dfg on 16/4/12.

//  Copyright © 2016年 kevin_dfg. All rights reserved.

//

#import "ViewController.h"

//屏幕宽高

#define ScreenWidth  self.view.frame.size.width

#define ScreenHeight self.view.frame.size.height

//qq头像的宽高

#define  QQHeadX      (ScreenWidth-0.25*ScreenWidth)/2

#define  QQHeadY        80

#define QQHeadWidth     0.25*ScreenWidth

#define QQHeadHeight    0.25*ScreenWidth

//账号的宽高

#define AccountX    0

#define AccountY    QQHeadY+QQHeadHeight+20

#define AccountW    ScreenWidth

#define AccountH    50

//密码的宽高

#define PasswordX   0

#define PasswordY   AccountY+50

#define PasswordW   ScreenWidth

#define PasswordH   50

//登陆的宽高

#define LoginX   35

#define LoginY   PasswordY+PasswordH+20

#define LoginW   ScreenWidth-2*LoginX

#define LoginH   50

//无法登陆?

#define FailedX   5

#define FailedY   0.95*ScreenHeight

#define FailedW   80

#define FailedH   25

//新用户

#define NewX   0.8*ScreenWidth

#define NewY   0.95*ScreenHeight

#define NewW   80

#define NewH   25

//图片选择器协议

@interface ViewController ()<UINavigationControllerDelegate, UIImagePickerControllerDelegate>

@property (nonatomic,strong)UIButton *UserImageBtn;

@property(nonatomic,strong )UITextField  *accountTextField;

@property (nonatomic,strong)UITextField *passwordTextField;

@property (nonatomic,strong)UIButton *LoginBtn;

@property (nonatomic,strong)UIButton *FailedBtn;

@property (nonatomic,strong)UIButton *NewBtn;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//分配初始化用户头像按钮。

self.UserImageBtn =[[UIButton alloc] initWithFrame:CGRectMake( (ScreenWidth-0.25*self.view.frame.size.width) / 2,80,

0.25*self.view.frame.size.width ,0.25*self.view.frame.size.width )];

//设置头像控件的图片

[self.UserImageBtn setBackgroundImage:[UIImage imageNamed:@"[email protected]"] forState:(UIControlStateNormal)];

//圆形头像

_UserImageBtn.layer.cornerRadius =QQHeadHeight/2;

_UserImageBtn.layer.masksToBounds=YES;

//添加头像控件的改变头像事件

[_UserImageBtn addTarget:self action:@selector(setUserImageBtnAction:) forControlEvents:(UIControlEventTouchUpInside)];

//将头像控件添加到视图上

[self.view addSubview:self.UserImageBtn];

//=======================================================

//分配初始化账号和密码控件

self.accountTextField=[[UITextField alloc] initWithFrame:CGRectMake(AccountX, AccountY, AccountW, AccountH)];

self.passwordTextField=[[UITextField alloc] initWithFrame:CGRectMake(PasswordX, PasswordY, PasswordW, PasswordH)];

//设置账号和密码框控件的位置,提示字符,键盘类型

_accountTextField.textAlignment=NSTextAlignmentCenter;

[email protected]"QQ号码" ;

_accountTextField.keyboardType=UIKeyboardTypeNumberPad;

_passwordTextField.textAlignment=NSTextAlignmentCenter;

[email protected]"QQ密码" ;

_passwordTextField.keyboardType=UIKeyboardTypeAlphabet;

//设置密码密文显示

_passwordTextField.secureTextEntry=YES;

//将账号和密码控件添加到视图

[self.view addSubview:self.accountTextField];

[self.view addSubview:self.passwordTextField];

//=======================================================

//分配初始化登陆控件

self.LoginBtn=[[UIButton alloc] initWithFrame:CGRectMake(LoginX, LoginY, LoginW, LoginH)];

//设置登陆控件的效果图片

[self.LoginBtn setBackgroundImage:[UIImage imageNamed:@"[email protected]"] forState:(UIControlStateNormal)];//正常

[self.LoginBtn setBackgroundImage:[UIImage imageNamed:@"[email protected]"] forState:(UIControlStateHighlighted)];//高亮

//添加登陆控件的登陆事件

[self.LoginBtn addTarget:self action:@selector(LoginBtnClickListener) forControlEvents:UIControlEventTouchUpInside];

//将登陆控件添加到视图

[self.view addSubview:self.LoginBtn];

//=======================================================

//分配初始化-无法登陆控件

self.FailedBtn=[[UIButton alloc] initWithFrame:CGRectMake(FailedX , FailedY, FailedW, FailedH)];

//设置无法登陆控件的背景图片

[self.FailedBtn setBackgroundImage: [UIImage imageNamed:@"failed.png"] forState:(UIControlStateNormal)];

//将无法登陆控件添加到视图

[self.view addSubview:self.FailedBtn];

//=======================================================

//分配初始化新用户控件

self.NewBtn=[[UIButton alloc] initWithFrame:CGRectMake(NewX, NewY, NewW, NewH)];

//设置新用户控件的背景图片

[self.NewBtn setBackgroundImage:[UIImage imageNamed:@"new.png"] forState:(UIControlStateNormal)];//正常

//将新用户控件添加到视图

[self.view addSubview:self.NewBtn];

}

//=======================================================

//=======================================================

//=======================================================

//=======================================================

//实现改变QQ头像事件

-(void)setUserImageBtnAction:(UIButton *)UserImageBtn{

//分配初始化图片选择器控件

UIImagePickerController *imagePicker =  [[UIImagePickerController alloc]init];

//设置图片来源为系统相册

imagePicker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;

//使用图片代理-查看协议-并实现“didFinishPickingImage”事件

imagePicker.delegate=self;

//使用模态窗口显示相册

[self  presentViewController:imagePicker animated:YES completion:nil];

}

//=======================================================

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary<NSString *,id> *)editingInfo{

//设置新头像

[_UserImageBtn setBackgroundImage:image forState:(UIControlStateNormal)];

//模态方式退出图像选择器

[picker dismissViewControllerAnimated:YES completion:nil];

}

//=======================================================

//实现登陆控件的登陆事件

- (void)LoginBtnClickListener{

if (self.accountTextField.text.length >0 && self.passwordTextField.text.length>0  ) {

//实例化提示窗

UIAlertController *alertController=[UIAlertController alertControllerWithTitle:@"温馨提示" message:@"登录中..." preferredStyle:(UIAlertControllerStyleAlert) ];

//添加按钮到提示窗

[alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleDefault) handler:nil]];

//显示提示框

[self presentViewController:alertController   animated:YES completion:nil];

}else{

//实例化提示窗

UIAlertController *alertController=[UIAlertController alertControllerWithTitle:@"错误" message:@"用户密码不能为空" preferredStyle:(UIAlertControllerStyleAlert) ];

//添加按钮到提示窗

[alertController addAction:[UIAlertAction actionWithTitle:@"确定" style: (UIAlertActionStyleDefault) handler:nil]];

//显示提示框

[self presentViewController:alertController   animated:YES completion:nil];

}

}

@end

时间: 2024-10-10 09:43:14

利用OC纯代码开发QQ登陆界面的相关文章

WPF和Expression Blend开发实例:模拟QQ登陆界面打开和关闭特效

不管在消费者的心中腾讯是一个怎么样的模仿者抄袭者的形象,但是腾讯在软件交互上的设计一直是一流的.正如某位已故的知名产品经理所说的:设计并非外观怎样,感觉如何.设计的是产品的工作原理.我觉得腾讯掌握了其精髓.在2013版的桌面版QQ中,腾讯的登陆界面在打开的时候有一个展开的过程,而关闭的时候有个收缩的过程.效果如图: 借助WPF和Expression Blend,我们可以轻易的实现这么一个效果,最终用比较慢的速率实现这个效果如下: 这个效果一共能够分成两个部分:展开和收缩,具体的代码如下: 收缩的

IOS学习 03 QQ登陆界面

学习IOS开发,现在做一个简单的QQ登陆界面的开发,如下图: 1.1 创建项目和设计界面,界面就如上图,两个Label,两个个text,加上一个Button登陆按键,界面比较简单,如下图. 2.2 说下属性设置,在输入QQ号码的文本框里,在属性Placeholder中输入“请输入QQ号吗”,这个属性当程序起动时,就会自动的在QQ号码的输入文本框中显示. 2.3  设置text的属性Clear Button=Appears while editing.这个属性是在程序运行时,在文本框输入QQ号码时

[iOS基础控件 - 3.1] QQ登陆界面

A.storyboard 控件版 1.label 2.textfield a.Keyboard Type 账号:Number Pad 密码:Number and Punctuation b.Placeholder:提示文字 c.Clear Button: Appears with editing 清除按钮 d.Secure Text Entry:密码格式输入 3.button 1 @interface ViewController () 2 @property (weak, nonatomic)

ios中object c纯代码开发屏幕适配处理方法

纯代码开发屏幕适配处理方法: 为适配iphone各个版本的机型,对ui布局中的坐标采用比例的方式进行初始化,在这里选定iphone6作为ui布局 1.首先在AppDelegate.h中定义两个属性: 1 #import <UIKit/UIKit.h> 2 3 @interface AppDelegate : UIResponder <UIApplicationDelegate> 4 5 @property (strong, nonatomic) UIWindow *window;

OC纯代码全手工打造ScroolView实现翻页

OC纯代码全手工打造ScroolView实现翻页 1. 概述 分为三部分: 上部标题ScrollView 下部内容ScrollView 上部当前页 标示线 2. 效果 上下两部分都随着手势的滑动一块滑动. 点击上部分,下部分也随着一起动. 上部分标示线,随手势改变位置,标识当前滑动所在页. 3. 步骤 分为创建和动作两部分 3.1.  创建标题ScollView 3.2.  创建标题标线 3.3.  创建内容ScollView

iOS UITableViewCell UITableVIewController 纯代码开发

iOS UITableViewCell UITableVIewController 纯代码开发 <原创> 1.纯代码 自定义UITableViewCell 直接上代码 ////// #import <UIKit/UIKit.h> @interface CodeTableViewCell : UITableViewCell @property (nonatomic, weak) UIImageView *iconView; @property (nonatomic, weak) UI

SWift开发实例之QQ登陆界面布局

// //  ViewController.swift //  QQ登录界面布局 // //  Created by 悦兑科技 on 15/1/14. //  Copyright (c) 2015年 BSY. All rights reserved. // import UIKit class ViewController: UIViewController { /// 定义属性 var QQNumber = UITextField() var PassNumber = UITextField(

ios模仿qq登陆界面

给大家推荐两个学习的地址: 极客学院的视频:http://www.jikexueyuan.com/path/ios/ 一个博客:http://blog.csdn.net/lizhongfu2013/article/details/29210015 主要想要实现一个模仿的登陆界面 代码: // // LoginViewController.swift // IBM_LOGIN // // Created by dcintern on 6/26/15. // Copyright (c) 2015 d

[UI基础][QQ登陆界面]

[目标] 1.QQ号码文本框要有“请输入QQ号码”的提示(用户输入时会自动消失) 2.QQ密码文本框要有“请输入QQ密码”的提示(用户输入文字会自动消失) 3.QQ号码文本框只能输入数字 4.QQ密码文本框内容必须是暗文显示 5.点击登陆按钮后把QQ密码和QQ号码打印到控制台,退出键盘 [实现] 1.完成界面搭建 这个界面比较简单,需要在storyboard上搭建 1. 2个Label “QQ号码” 和 “QQ密码” 2. 1个Button “登陆” 3. 2个TextField QQ密码输入和