来源:http://2015.iteye.com/blog/1325291
有一个320*480的UITextView,点击UITextView的时候,下面的部分会被弹出的软键盘挡住,我们可以将UITextView的高度改为480 - 软键盘的高度,关闭软键盘后,高度恢复为原始高度。
- (void)viewDidLoad
{
[super viewDidLoad];
self.textView = [[UITextView alloc] initWithFrame:self.view.frame];
self.textView.textColor = [UIColor blackColor];
self.textView.font = [UIFont fontWithName:@"Arial" size:18];
self.textView.backgroundColor = [UIColor whiteColor];
self.textView.text = @"This is the text view example, we can edit, delete, add content in the text view.";
self.textView.returnKeyType = UIReturnKeyDefault;
self.textView.keyboardType = UIKeyboardTypeDefault;
self.textView.scrollEnabled = YES;
self.textView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
[self.view addSubview: self.textView];
[self.textView release];
}
- (void)viewDidUnload
{
[super viewDidUnload];
self.textView = nil;
}
- (void)dealloc {
[textView release], textView = nil;
[super dealloc];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
- (void)keyboardWillShow:(NSNotification *)aNotification
{
CGRect keyboardRect = [[[aNotification userInfo] objectForKey:UIKeyboardBoundsUserInfoKey] CGRectValue];
NSTimeInterval animationDuration = [[[aNotification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect frame = self.view.frame;
frame.size.height -= keyboardRect.size.height;
[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
[UIView setAnimationDuration:animationDuration];
self.view.frame = frame;
[UIView commitAnimations];
}
- (void)keyboardWillHide:(NSNotification *)aNotification
{
CGRect keyboardRect = [[[aNotification userInfo] objectForKey:UIKeyboardBoundsUserInfoKey] CGRectValue];
NSTimeInterval animationDuration = [[[aNotification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect frame = self.view.frame;
frame.size.height += keyboardRect.size.height;
[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
[UIView setAnimationDuration:animationDuration];
self.view.frame = frame;
[UIView commitAnimations];
}
也可以参考帖子:http://www.cnblogs.com/iphone520/archive/2011/10/11/2207616.html
相关推荐
在iOS开发中,当用户需要在UITextField或UITextView中输入时,键盘的弹出会遮挡部分内容,特别是当这些输入控件位于UIScrollView等可滚动视图上时。标题"ios-键盘不覆盖UITextField和UITextView输入框.zip"所提及的...
"ios-键盘弹出.zip"这个压缩包文件显然聚焦于如何在iOS应用中优雅地处理键盘的显示和隐藏,以及通过代理和通知来传递值。让我们深入探讨一下这些关键知识点。 首先,键盘在iOS应用中的展示与隐藏是一个常见的需求。...
在iOS开发中,特别是在iOS 7及更高版本中,用户界面设计的一个常见问题是虚拟键盘弹出时会遮挡UITextField或UITextView,导致用户无法看到正在输入的文本。本篇文章将详细探讨如何解决这一问题,主要关注如何在iOS 7...
标题"iOS解决输入框被键盘遮挡问题"直指这一常见痛点,描述指出了解决方案——在键盘弹出时,界面向上移动以确保输入框始终可见。以下将详细阐述如何处理这个问题。 首先,我们需要理解iOS中的键盘管理机制。当用户...
在iOS应用开发中,特别是在构建用户交互界面时,"弹出键盘,监听键盘高度"是一个常见且重要的需求。当用户需要在屏幕上输入信息,如评论、搜索或填写表单时,软键盘的弹出会影响到屏幕上的其他元素,尤其是那些位于...
iOS提供了uitextfield和uitextview这两个UI组件,它们会在获得焦点时自动弹出键盘。开发者可以通过uitextfield的代理方法来监听键盘的显示和隐藏,如`textFieldDidBeginEditing:` 和 `textFieldDidEndEditing:`。...
AnimatedTextInput, iOS的动画UITextField和UITextView替换 AnimatedTextInput iOS Jobandtalent应用中使用的iOS自定义文本输入组件。 安装使用cocoapods在项目中安装这里自定义控件。pod 'AnimatedTextInput'
为了解决这个问题,iOS提供了多种方法来处理键盘弹出时视图的自动调整,以确保输入框始终可见。以下是一些相关的知识点和实现策略: 1. **UIKeyboardNotification**:苹果提供了UIKeyboardWillShowNotification和...
UITextField和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程中,我们需要控制键盘的弹出和收起、在输入结束的时候获取输入的信息,此外,我们还需要保证在键盘弹起的时候不...
`WPAutoSpringKeyboard` 是一个专为提升用户体验设计的Objective-C库,它提供了一个ViewController子类,可以在用户开始编辑`UITextField`或`UITextView`时自动弹出键盘,而在用户完成编辑时自动隐藏键盘。...
本示例项目"ios-UITextView文字和键盘之间的高度计算.zip"旨在解决这个问题,通过动态计算文字高度来调整`UITextView`的位置,确保文本始终可见。 首先,我们需要理解`UITextView`的基本属性和行为。`UITextView`...
当用户点击输入框(UITextField或UITextView)以输入内容时,键盘的弹出可能会遮挡输入框,导致用户无法清晰看到正在输入的信息。为了解决这个问题,iOS提供了键盘管理的机制,使得视图能够自动适应键盘的出现,将...
在iOS开发中,当用户需要在`UITextView`中输入文本时,键盘的弹出可能会遮挡到`UITextView`,导致用户无法看到正在输入的内容。这个问题在许多应用中都会遇到,尤其是那些需要大量文字输入的场景。为了解决这个问题...
"ios-最优雅的textView占位符与字数限制的解决方式.zip"这个压缩包中包含的YLTextView可能是一个自定义的TextView控件,它解决了这两个问题。 首先,我们来看如何添加占位符。在iOS开发中,我们通常通过扩展或创建...
这个"ios-UITextView中插入图片.zip"文件提供了一个简单的实现方式,通过`NSMutableAttributedString`来完成这一功能。 `NSMutableAttributedString`是苹果提供的一个类,它允许我们在字符串中插入各种属性,如字体...
`ios-UITextView封装自定义超级简单提示语.zip`这个资源提供了一个方便的解决方案,它是一个已经封装好的`UITextView`子类,专门用于实现提示语功能。 在`Swift`或`Objective-C`中,通常默认`UITextView`并没有内置...
当用户需要在设备上输入信息时,键盘的弹出和隐藏会显著影响用户体验。标题“iOS_输入栏自适应键盘的高度”揭示了一个关键的UI优化问题:如何确保输入栏在键盘出现时能够自动调整其位置,以便用户可以舒适地看到和...
当用户在UITextField或者UITextView中输入时,键盘的弹出会遮挡部分屏幕内容,这可能导致用户无法看到或访问到屏幕下方的信息。因此,开发者通常需要调整界面布局,以便在键盘出现时保持用户体验的连贯性。此外,...
标题“iOS 软键盘遮挡问题 点击外部隐藏软键盘”所提及的问题是,当用户在移动设备上使用应用时,软键盘弹出可能会遮挡到屏幕下方的部分内容,这可能导致用户体验下降。为了解决这个问题,iOS提供了多种方法来处理软...