UITextField 被键盘挡住时自动上移调整textField frame
2015-12-02 11:36
465 查看
#pragma mark - textFieldDelegate 被键盘挡住时能自动调整textField frame, 回收键盘时frame能还原
-(BOOL)textFieldShouldReturn:(UITextField *)textField
//如果工程里还用的其他回收键盘的方法 如UIApplication ShareApplication或者touchBegan 则也需要把此textShouldReturn方法写在那些方法的点击事件里
{
// When the user presses return, take focus away from the text field so that the keyboard is dismissed.
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
[UIView setAnimationDuration:animationDuration];
CGRect rect = CGRectMake(0.0f, 0.0f, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height);
//CGRect rect = CGRectMake(0.0f, 20.0f, self.view.frame.size.width, self.view.frame.size.height);
self.view.frame = rect;
[UIView commitAnimations];
[textField resignFirstResponder];
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
CGRect frame = self.textfield.frame; //要放整体上移的view,如果想让textField父view也跟着上移,即textfield所在的view, 就需要写整体上移其父视图 的frame
int offset = frame.origin.y + 35 + 64 - ([[UIScreen mainScreen]bounds].size.height - 216.0);//216是键盘高度, (35 + 64 = textfield高度 + naviBar高度)
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyBoard" context:nil];
[UIView setAnimationDuration:animationDuration];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
if(offset > 0)
{
CGRect rect = CGRectMake(0.0f, -offset,width,height);
self.view.frame = rect;
}
[UIView commitAnimations];
}
#pragma mark
-(BOOL)textFieldShouldReturn:(UITextField *)textField
//如果工程里还用的其他回收键盘的方法 如UIApplication ShareApplication或者touchBegan 则也需要把此textShouldReturn方法写在那些方法的点击事件里
{
// When the user presses return, take focus away from the text field so that the keyboard is dismissed.
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
[UIView setAnimationDuration:animationDuration];
CGRect rect = CGRectMake(0.0f, 0.0f, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height);
//CGRect rect = CGRectMake(0.0f, 20.0f, self.view.frame.size.width, self.view.frame.size.height);
self.view.frame = rect;
[UIView commitAnimations];
[textField resignFirstResponder];
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
CGRect frame = self.textfield.frame; //要放整体上移的view,如果想让textField父view也跟着上移,即textfield所在的view, 就需要写整体上移其父视图 的frame
int offset = frame.origin.y + 35 + 64 - ([[UIScreen mainScreen]bounds].size.height - 216.0);//216是键盘高度, (35 + 64 = textfield高度 + naviBar高度)
NSTimeInterval animationDuration = 0.30f;
[UIView beginAnimations:@"ResizeForKeyBoard" context:nil];
[UIView setAnimationDuration:animationDuration];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
if(offset > 0)
{
CGRect rect = CGRectMake(0.0f, -offset,width,height);
self.view.frame = rect;
}
[UIView commitAnimations];
}
#pragma mark
相关文章推荐
- 【IOS】NSUInteger
- iOS uibutton 上下按钮样式
- error for Tiwsted: Twisted requires zope.interface 3.6.0
- Sqlserver Sequence操作
- [POJ]2533 Longest Ordered Subsequence
- 使用vim-gui-common实现从vim窗口复制内容到系统剪贴板
- UEFI 、GPT 分区安装 Windows10
- EasyTouch与UGUI的结合
- UGUI世界坐标转屏幕坐标
- 交互设计:隐藏或显示大段文本的UI组件有哪些?
- 跨境电商到底算不算走私
- 问题1-The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
- 使用AutoLayout添加UIScrollView
- $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI']区别
- NO.3- UIControl(控制类)
- UIImageView
- 消息队列(Message Queue)简介及其使用
- UIFont
- To Thine Own Self Be True
- UISearchBar控件