QQ登陆页面实现

iOS_28仿QQ空间登录与退出
2014-09-02     我来说两句    来源:pre_eminent的JAVA学习园地  
收藏  我要投稿

最终效果图如下:

注意事项:<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz7K5Mjrv/K1xHJldHVybiBLZXk8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+TWFpbi5zdG9yeWJvYXJk1tDOqiBMb2dpbkNvbnRyb2xsZXIgyejWw9K7uPZzdG9yeWJvYXJkSUQsPC9zdHJvbmc+PC9wPgo8cD48c3Ryb25nPtLUseO/ydLU1Nq0+sLr1tDNqLn9U3Rvcnlib2FyZLbUz/PKtcD9LLS0vahNYWluLnN0b3J5Ym9hcmTA78PmtcS/2NbGxvc8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+PGJyPgo8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+PGJyPgo8L3N0cm9uZz48L3A+CjxwPjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140902/20140902085743107.png"
alt="\">

仿QQ窗口抖动


dispach_after模拟延时

输入框的return Key的不同处理方式

Login控制器代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

//

//  LoginController.m

//  28_QQ空间

//

//  Created by beyond on 14-9-1.

//  Copyright (c) 2014年 com.beyond. All rights reserved.

//  Main.storyboard中初始化时的控制器,登录控制器 验证成功后,跳转至主控制器

 

#import
"LoginController.h"

// 验证成功后,跳转至主控制器

#import
"BeyondViewController.h"

 

@interface
LoginController () <uitextfielddelegate>

#pragma mark - 拖线 属性

// 登录框整体

@property
(weak, nonatomic) IBOutlet UIView *loginContentView;

// 帐号

@property
(weak, nonatomic) IBOutlet UITextField *usernameField;

// 密码

@property
(weak, nonatomic) IBOutlet UITextField *passwordField;

// 登录按钮

@property
(weak, nonatomic) IBOutlet UIButton *loginBtn;

// 记住密码btn

@property
(weak, nonatomic) IBOutlet UIButton *rememberPwdBtn;

// 自动登录btn

@property
(weak, nonatomic) IBOutlet UIButton *autoLoginBtn;

// 加载中...

@property
(weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;

#pragma mark - 拖线 方法

// 登录按钮被点击

- (IBAction)loginBtnClicked;

// 点击了记住密码 或 自动登录

- (IBAction)checkboxBtnClicked:(UIButton *)sender;

@end

 

@implementation
LoginController

 

- (void)viewDidLoad

{

    [super
viewDidLoad];

    // 1.设置登陆控制器 的背景色 为全局深黑色

    self.view.backgroundColor = kGlobalBgColor;

     

    // 2.设置登录按钮不同状态下的背景

    [self.loginBtn setBtnBgImgForNormal:@"login_button_normal"
highlightedName:@"login_button_pressed"];

}

// 点击屏幕空白处,退出键盘

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

    [self.view endEditing:YES];

}

#pragma mark - 拖线方法

// 点击了记住密码 或 自动登录

- (IBAction)checkboxBtnClicked:(UIButton *)sender

{

    // 设置勾选 或 取消勾选

    sender.selected = ! sender.isSelected;

    // 重要~~~

    if
(sender == self.rememberPwdBtn && !sender.isSelected) {

        // 取消了“记住密码”,这时候 就可以同时取消 自动登录了,因为用户不想记住密码,自然就无法实现 自动登录功能

        self.autoLoginBtn.selected = NO;

    }
else if
(sender == self.autoLoginBtn && sender.isSelected) {

        // 当用户 选中了“自动登录”,那么表示他想自动登录,那么可以同时把记住密码勾选上

        self.rememberPwdBtn.selected = YES;

    }

}

// 点击登录按钮

- (IBAction)loginBtnClicked

{

    // 1.验证帐号

    NSString *account = self.usernameField.text;

    if
(account.length == 0) {

        [self showError:@"请输入帐号"];

        return;

    }

     

    // 2.验证密码

    NSString *password = self.passwordField.text;

    if
(password.length == 0) {

        [self showError:@"请输入密码"];

        return;

    }

     

    // 3.发送请求

    self.view.userInteractionEnabled = NO;

    [self.activityIndicator startAnimating];

     

    // 模拟延时

    CGFloat delay =
2.0;

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        // 4.登录完毕(请求完毕)

        [self.activityIndicator stopAnimating];

        self.view.userInteractionEnabled = YES;

         

        // 5.账号密码同时为123才是正确

        if
(![account isEqualToString:@"123"]) {

            [self showError:@"帐号或密码错误"];

            return;

        }

        if
(![password isEqualToString:@"123"]) {

            [self showError:@"帐号或密码错误"];

            return;

        }

         

        // 6.登录成功  跳转到主页

 

        self.view.window.rootViewController = [[BeyondViewController alloc] init];

    });

}

 

 

#pragma mark - 自定义方法

// 提示错误信息

- (void)showError:(NSString *)errorMsg

{

    // 1.弹框提醒

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"登录失败"
message:errorMsg delegate:nil cancelButtonTitle:@"确定"
otherButtonTitles:nil, nil];

    [alert show];

     

    // 2.仿QQ窗口抖动

    // 核心动画之 关键帧动画

    CAKeyframeAnimation *shakeAnim = [CAKeyframeAnimation animation];

    // 哪一个成员属性 需要动画,答:x

    shakeAnim.keyPath = @"transform.translation.x";

    shakeAnim.duration =
0.15;

    CGFloat delta =
10;

    // 数组,指定每一帧时的x值

    shakeAnim.values = @[@0, @(-delta), @(delta),
@0];

    shakeAnim.repeatCount =
2;

    // 让view所在的图层执行 关键帧动画

    [self.loginContentView.layer addAnimation:shakeAnim forKey:nil];

}

 

 

#pragma mark - UITextField代理方法

// 控制器 键盘上returnKey在不同输入框下的作用,如Next 或 Done

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{

    if
(textField == self.usernameField) {

        // 帐号输入框(Next)

        [self.passwordField becomeFirstResponder];

    }
else {

        // 密码框(Done),调用自定义方法,执行登录

        [self loginBtnClicked];

    }

    return
YES;

}

 

@end

</uitextfielddelegate>

退出,并且回到Main.storyboard里面的初始的登录控制器

原地址:http://www.2cto.com/kf/201409/330294.html

时间: 2024-08-31 03:59:14

QQ登陆页面实现的相关文章

分享功能-怎实现点击按钮链接到qq登陆页面

问题描述 怎实现点击按钮链接到qq登陆页面 我想实现点击按钮,实现类似分享到朋友圈这样的功能,应该怎么做? 解决方案 http://blog.csdn.net/cwcwj3069/article/details/41698417 解决方案二: 这个是一个插件的功能.叫做share. 解决方案三: 这个是需要三方的,Mob上有三方分享,http://www.mob.com/#/ 它有写好的API 还有可以下载的SDK 你按照mob上的API 一步步做就行,我昨天刚做完.

WEB登陆页面设计技巧:登陆界面表现形式

文章描述:拒绝平庸:优秀WEB登录页面设计. 关于登陆估计大家每天使用的都很频繁了,每次上网都会习惯性登陆下微博,淘宝,邮箱,空间等,在每天进进出出无数门户的时候有谁又曾在密码不错误的情况下停留在WEB登陆页面看一眼呢?下面就谈谈这道不起眼的门. 从公共平台的角度看 用户活跃度是检验产品成功与否的重要指标之一,传统行业的商家极为重视门面的装潢,因为一个好的门面可以聚集人气,招揽更多的顾客.古时候的大户人家院子门口的石狮子或其他的摆件的摆放极为讲究,有一定的风水学说道理,更能彰显主人家的身份地位.

phpcms V9实现QQ登陆OAuth2.0

phpcmsV9使用的QQ登陆依然是OAuth1.0,但现在腾讯已经不审核使用OAuth1.0的网站了.这对于使用pc的站长来讲是一个无比巨大的坑.经过对phpcms论坛的一位同学做的插件进行修改,现在完美实现QQ登陆,暂无发现bug. 实现步骤: ①打开\phpcms\modules\member\index.php文件,把下面的代码找个地方塞进去(可以直接在pc默认的QQ登陆下面).   //QQ登陆oAuth2.0 ublic function public_qq_login2(){  

htc qq登陆-关于android 在HTC手机上QQ第三方账号登陆

问题描述 关于android 在HTC手机上QQ第三方账号登陆 在HTC手机上QQ第三方账号登陆时,自己写的登陆页面会被重新启动好几次,大神,请问怎么回事?

app-android APP使用友盟第三方登陆,微信可以登陆,QQ 登陆提示登陆失败,错误码:100044

问题描述 android APP使用友盟第三方登陆,微信可以登陆,QQ 登陆提示登陆失败,错误码:100044 使用友盟的第三方登陆实现微信和QQ登陆app,使用keystore微信可以登陆,QQ提示100044错误 :直接用eclipse运行qq可以登陆,但无法跳转到微信登陆页面: 解决方案 http://bbs.umeng.com/thread-5756-1-1.html

Discuz!论坛整合QQ登陆 首先要解除站长和用户的疑虑

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Discuz! X1.5 正式版发布已快一个月,之前盛传的Discuz!论坛整合QQ账户登陆如今已经实现.昨日该功能已在官方体验站点正式公测(http://www.discuz.org ).这个版本实现四项功能:一.使用QQ帐号密码注册和登陆论坛更方便快捷;二.发帖可选同时推送到QQ空间动态(标题+简单摘要+原帖地址);三.分享论坛主题到QQ空间(标题+简单摘要+原帖地址);四.建立QQ空间的认证空间,聚拢用户并随时将站内优秀内容推送给粉丝用户.能

Android仿QQ登陆窗口实现原理_Android

今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面.首先程序进入SplashActivity,就是启动页面,Activity代码如下: 复制代码 代码如下: package com.example.imitateqq; import android.app.Activity; import android.content.Intent; import android.os.Bund

登陆验证 qq登陆验证 php 登陆验证

用户登录验证脚本,Chkpwd.asp <% '=======用户登录验证脚本======= '如果尚未定义Passed对象,则将其定义为false,表示没有通过验证 If IsEmpty(Session("Passed")) Then Session("Passed")=false End If 'Session("Passed")=False,表示尚未通过验证,则开始读取从表单传来的验证信息 If Session("Passe

Android仿QQ登陆窗口实现原理

今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面.首先程序进入SplashActivity,就是启动页面,Activity代码如下:复制代码 代码如下:package com.example.imitateqq; import android.app.Activity; import android.content.Intent; import android.os.Bundle