`
dcj3sjt126com
  • 浏览: 1878512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ios 弹出键盘挡住UITextView的解决方式

    博客分类:
  • IOS
 
阅读更多

来源: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输入框.zip

    在iOS开发中,当用户需要在UITextField或UITextView中输入时,键盘的弹出会遮挡部分内容,特别是当这些输入控件位于UIScrollView等可滚动视图上时。标题"ios-键盘不覆盖UITextField和UITextView输入框.zip"所提及的...

    ios-键盘弹出.zip

    "ios-键盘弹出.zip"这个压缩包文件显然聚焦于如何在iOS应用中优雅地处理键盘的显示和隐藏,以及通过代理和通知来传递值。让我们深入探讨一下这些关键知识点。 首先,键盘在iOS应用中的展示与隐藏是一个常见的需求。...

    ios7隐藏虚拟键盘,解决键盘挡住UITextField问题

    在iOS开发中,特别是在iOS 7及更高版本中,用户界面设计的一个常见问题是虚拟键盘弹出时会遮挡UITextField或UITextView,导致用户无法看到正在输入的文本。本篇文章将详细探讨如何解决这一问题,主要关注如何在iOS 7...

    IOS 解决输入框被键盘遮挡问题

    标题"iOS解决输入框被键盘遮挡问题"直指这一常见痛点,描述指出了解决方案——在键盘弹出时,界面向上移动以确保输入框始终可见。以下将详细阐述如何处理这个问题。 首先,我们需要理解iOS中的键盘管理机制。当用户...

    弹出键盘,监听键盘高度

    在iOS应用开发中,特别是在构建用户交互界面时,"弹出键盘,监听键盘高度"是一个常见且重要的需求。当用户需要在屏幕上输入信息,如评论、搜索或填写表单时,软键盘的弹出会影响到屏幕上的其他元素,尤其是那些位于...

    ios-键盘上弹出控件.zip

    iOS提供了uitextfield和uitextview这两个UI组件,它们会在获得焦点时自动弹出键盘。开发者可以通过uitextfield的代理方法来监听键盘的显示和隐藏,如`textFieldDidBeginEditing:` 和 `textFieldDidEndEditing:`。...

    AnimatedTextInput, iOS的动画UITextField和UITextView替换.zip

    AnimatedTextInput, iOS的动画UITextField和UITextView替换 AnimatedTextInput iOS Jobandtalent应用中使用的iOS自定义文本输入组件。 安装使用cocoapods在项目中安装这里自定义控件。pod 'AnimatedTextInput'

    ios应用源码之点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内

    为了解决这个问题,iOS提供了多种方法来处理键盘弹出时视图的自动调整,以确保输入框始终可见。以下是一些相关的知识点和实现策略: 1. **UIKeyboardNotification**:苹果提供了UIKeyboardWillShowNotification和...

    iOS项目开发键盘弹出遮挡输入框问题解决方案

    UITextField和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程中,我们需要控制键盘的弹出和收起、在输入结束的时候获取输入的信息,此外,我们还需要保证在键盘弹起的时候不...

    WPAutoSpringKeyboard:一个iOS ViewController类,可在编辑UITextField或UITextView时自动弹出键盘

    `WPAutoSpringKeyboard` 是一个专为提升用户体验设计的Objective-C库,它提供了一个ViewController子类,可以在用户开始编辑`UITextField`或`UITextView`时自动弹出键盘,而在用户完成编辑时自动隐藏键盘。...

    ios-UITextView文字和键盘之间的高度计算.zip

    本示例项目"ios-UITextView文字和键盘之间的高度计算.zip"旨在解决这个问题,通过动态计算文字高度来调整`UITextView`的位置,确保文本始终可见。 首先,我们需要理解`UITextView`的基本属性和行为。`UITextView`...

    点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容_IOS应用源码.rar

    当用户点击输入框(UITextField或UITextView)以输入内容时,键盘的弹出可能会遮挡输入框,导致用户无法清晰看到正在输入的信息。为了解决这个问题,iOS提供了键盘管理的机制,使得视图能够自动适应键盘的出现,将...

    自适应UITextView和键盘位置对应的Demo

    在iOS开发中,当用户需要在`UITextView`中输入文本时,键盘的弹出可能会遮挡到`UITextView`,导致用户无法看到正在输入的内容。这个问题在许多应用中都会遇到,尤其是那些需要大量文字输入的场景。为了解决这个问题...

    ios-最优雅的textView占位符与字数限制的解决方式.zip

    "ios-最优雅的textView占位符与字数限制的解决方式.zip"这个压缩包中包含的YLTextView可能是一个自定义的TextView控件,它解决了这两个问题。 首先,我们来看如何添加占位符。在iOS开发中,我们通常通过扩展或创建...

    ios-UITextView中插入图片.zip

    这个"ios-UITextView中插入图片.zip"文件提供了一个简单的实现方式,通过`NSMutableAttributedString`来完成这一功能。 `NSMutableAttributedString`是苹果提供的一个类,它允许我们在字符串中插入各种属性,如字体...

    ios-UITextView封装自定义超级简单提示语.zip

    `ios-UITextView封装自定义超级简单提示语.zip`这个资源提供了一个方便的解决方案,它是一个已经封装好的`UITextView`子类,专门用于实现提示语功能。 在`Swift`或`Objective-C`中,通常默认`UITextView`并没有内置...

    iOS_输入栏自适应键盘的高度

    当用户需要在设备上输入信息时,键盘的弹出和隐藏会显著影响用户体验。标题“iOS_输入栏自适应键盘的高度”揭示了一个关键的UI优化问题:如何确保输入栏在键盘出现时能够自动调整其位置,以便用户可以舒适地看到和...

    ios-监听键盘高度(包括第三发键盘).zip

    当用户在UITextField或者UITextView中输入时,键盘的弹出会遮挡部分屏幕内容,这可能导致用户无法看到或访问到屏幕下方的信息。因此,开发者通常需要调整界面布局,以便在键盘出现时保持用户体验的连贯性。此外,...

    iOS 软键盘遮挡问题 点击外部隐藏软键盘

    标题“iOS 软键盘遮挡问题 点击外部隐藏软键盘”所提及的问题是,当用户在移动设备上使用应用时,软键盘弹出可能会遮挡到屏幕下方的部分内容,这可能导致用户体验下降。为了解决这个问题,iOS提供了多种方法来处理软...

Global site tag (gtag.js) - Google Analytics