全局异步和主线程异步区别、改变PlaceHolder颜色、解决键盘弹起挡住文本框问题...
1、全局異步執(zhí)行耗時任務
dispatch_async(dispatch_get_global_queue(0, 0), ^{
});
2.主線程異步刷新UI
dispatch_async(dispatch_get_main_queue(), ^{
});
3.改變PlaceHolder的顏色
[username_text setValue:[UIColor colorWithRed:1 green:1
blue:1 alpha:0.5]
forKeyPath:@"_placeholderLabel.textColor"];
4.解決鍵盤彈起擋住文本框的問題
//鍵盤彈起時重置View大小
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent
*)event{
[username_text resignFirstResponder];
[password_text resignFirstResponder];
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyboard"context:nil];
[UIView setAnimationDuration:animationDuration];
CGRect rect = CGRectMake(0.0f, 0.0f,self.view.frame.size.width,self.view.frame.size.height);
self.view.frame = rect;
[UIView commitAnimations];
}
?
?
//退出編輯(鍵盤落下)重置View大小
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyboard"context:nil];
[UIView setAnimationDuration:animationDuration];
CGRect rect = CGRectMake(0.0f, 0.0f,self.view.frame.size.width,self.view.frame.size.height);
self.view.frame = rect;
[UIView commitAnimations];
[textField resignFirstResponder];
return YES;
}
?
5.開始編輯(鍵盤彈起)通過控件Y坐標計算View顯示范圍
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
CGRect frame = password_text.frame;
int offset = frame.origin.y + 32 -
(self.view.frame.size.height - 216.0);
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyBoard"
context:nil];
[UIView setAnimationDuration:animationDuration];
floatwidth =self.view.frame.size.width;
floatheight =self.view.frame.size.height;
if(offset > 0)
{
CGRect rect = CGRectMake(0.0f, -
offset,width,height);
self.view.frame = rect;
}
[UIView commitAnimations];
}
轉載于:https://www.cnblogs.com/CJH5209/p/6072129.html
總結
以上是生活随笔為你收集整理的全局异步和主线程异步区别、改变PlaceHolder颜色、解决键盘弹起挡住文本框问题...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sed的应用
- 下一篇: Codeforces Round #37