日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QQ登陆页面实现

發布時間:2024/3/24 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的QQ登陆页面实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。