工作一週了,想想還是要寫一寫工作周志,記錄一下這一週的工作內容,碰到的知識和工作的體會。以此爲頭,養成一個定時總結的良好習慣。
這一週的事情主要是做用戶的登錄,註冊和找回密碼的頁面功能。
登錄:
1、封裝了一個自定義的 UISwitch 控件
2、封裝了一個本地生成驗證碼的類
註冊:
1、封裝了一個正則判斷密碼的分類(做正則判斷是一件很糾結的事情,至今我還是沒太搞得懂怎麼去做判斷,分類是網上看着規則弄的,這一塊有待加強吧,至少搞明白正則判斷的基本語法纔行)
2、封裝一個自定義彈框的類(這裏的 block 回調不能用於移除界面的蒙板,只能通過調用代理方法來實現移除蒙板,這是我一直沒想明白的問題)
找回密碼:
1、運用代理進行控制器之間的傳值。
2、自定義按鈕倒計時效果
一些使用到的屬性和設置:
//當scrollView 與頂部出現一段約64的距離時候,可以通過設置該屬性讓距離消失。
self.automaticallyAdjustsScrollViewInsets = NO;
//設置某一個控件的圓角。
self.logInButton.layer.cornerRadius = 7.0f;
//設置導航欄的左右按鈕
UIBarButtonItem *backBtn = [[UIBarButtonItem alloc]initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = backBtn;
//設置控件的邊框寬度和邊框顏色
self.userNameTF.layer.borderWidth = 2.0f;
self.userNameTF.layer.borderColor = [[UIColor redColor]CGColor];
//拖線設置監聽文本框輸入變化的方法
- (IBAction)TextFieldEdititngChanged:(id)sender
//拖線設置監聽輸入退出的方法(點擊鍵盤的 return 會隱藏鍵盤)
- (IBAction)TextField_DidEndOnExit:(id)sender {
[sender resignFirstResponder];
}
//點擊空白處隱藏鍵盤(記得將 View 的 Class 設置成 UIControl,然後拖線)
- (IBAction)View_TouchDown:(id)sender {
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
}
//從sb 中加載一個控制器,並 push 該控制器
UIStoryboard *registerSB = [UIStoryboard storyboardWithName:@"Register" bundle:nil];
RegisterViewController *registerViewController = registerSB.instantiateInitialViewController;
[self.navigationController pushViewController:registerViewController animated:YES];
//設置文本框輸入時候的刪除按鈕
self.passWordTF.clearButtonMode = UITextFieldViewModeWhileEditing;
//這是圖片的縮放模式
[self.smsAuthCodeBtn.imageView setContentMode:UIViewContentModeScaleAspectFill];
//MBProgressHUD的簡單使用
MBProgressHUD *HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
HUD.mode = MBProgressHUDModeText;
HUD.labelText = @"註冊成功";
HUD.delegate = self;
[HUD hide:YES afterDelay:1.0f];
#pragma mark -MBProgressHUDDelegate(隱藏後會做調用)
- (void)hudWasHidden:(MBProgressHUD *)hud {
[hud removeFromSuperview];
hud = nil;
self.registerButton.selected = !self.registerButton.selected;
}
//設置按鈕文字下劃線(設置複雜字體效果)
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"聯繫客服"];
NSRange strRange = {0,[str length]};
[str addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:strRange];
[self. callServeBtn setAttributedTitle:str forState:UIControlStateNormal];
//返回某一個控制器(遍歷,找到該控制器)
for (UIViewController *view in self.navigationController.viewControllers) {
if ([view isKindOfClass:[LoginViewController class]]) {
[self.navigationController popToViewController:view animated:YES];
}
}
//撥打電話號碼
NSString *phoneNumber=@"18888888888";
// 會提示用戶是否撥打電話
NSString *url=[NSString stringWithFormat:@"telprompt://%@",phoneNumber];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];