.h里面写的两个属性。
//评论的时候弹出来的。
@property (retain, nonatomic) UIView *mainView;
@property (retain, nonatomic) UITextView *myTextV1;
ViewDidLoad 里面写的。
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(changeContentViewPoint:) name:UIKeyboardWillShowNotificationobject:nil];
self.myTextV1 = [[UITextViewalloc]initWithFrame:CGRectMake(0, 0, 280, 40)];
self.myTextV1.layer.cornerRadius = 5;
self.myTextV1.layer.masksToBounds = YES;
UIButton *fasongBut = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
fasongBut.frame = CGRectMake(280, 0, 40, 40);
[fasongBut setTitle:@"确定"forState:UIControlStateNormal];
[fasongBut addTarget:selfaction:@selector(pinglunQueding:) forControlEvents:UIControlEventTouchUpInside];
self.mainView = [[UIViewalloc]initWithFrame:CGRectMake(0, kScreenHeight, 320, 40)];
[self.view addSubview:self.mainView];
[self.mainViewaddSubview:self.myTextV1];
[self.mainView addSubview:fasongBut];
下面是操作的三个方法。
-(void)pinglunAction:(UIButton *)sender{
self.mainView.hidden = NO;
[self.viewbringSubviewToFront:self.mainView];
[self.myTextV1becomeFirstResponder];
}
-(void)pinglunQueding:(UIButton *)sender{
[self.myTextV1resignFirstResponder];
self.mainView.hidden = YES;
self.mainView.center = CGPointMake(self.mainView.center.x, kScreenHeight);
}
// 根据键盘状态,调整_mainView的位置
- (void) changeContentViewPoint:(NSNotification *)notification{
NSDictionary *userInfo = [notification userInfo];
NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGFloat keyBoardEndY = value.CGRectValue.origin.y; // 得到键盘弹出后的键盘视图所在y坐标
NSNumber *duration = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
NSNumber *curve = [userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];
// 添加移动动画,使视图跟随键盘移动
[UIViewanimateWithDuration:duration.doubleValueanimations:^{
[UIViewsetAnimationBeginsFromCurrentState:YES];
[UIViewsetAnimationCurve:[curve intValue]];
self.mainView.center = CGPointMake(self.mainView.center.x, keyBoardEndY - kStateBarHeight - self.mainView.bounds.size.height/2.0); // keyBoardEndY的坐标包括了状态栏的高度,要减去
}];
}
相关推荐
在iOS开发中,当用户需要在UITextField或UITextView中输入时,键盘的弹出会遮挡部分内容,特别是当这些输入控件位于UIScrollView等可滚动视图上时。标题"ios-键盘不覆盖UITextField和UITextView输入框.zip"所提及的...
在iOS应用开发中,特别是在构建用户交互界面时,"弹出键盘,监听键盘高度"是一个常见且重要的需求。当用户需要在屏幕上输入信息,如评论、搜索或填写表单时,软键盘的弹出会影响到屏幕上的其他元素,尤其是那些位于...
iOS提供了uitextfield和uitextview这两个UI组件,它们会在获得焦点时自动弹出键盘。开发者可以通过uitextfield的代理方法来监听键盘的显示和隐藏,如`textFieldDidBeginEditing:` 和 `textFieldDidEndEditing:`。...
当用户点击输入框时,系统会自动弹出键盘,但不会自动调整界面布局以适应键盘的高度。这就是导致输入框被遮挡的问题所在。为了解决这个问题,我们可以利用苹果提供的`UIViewController`的一个属性:`...
当用户需要在设备上输入信息时,键盘的弹出和隐藏会显著影响用户体验。标题“iOS_输入栏自适应键盘的高度”揭示了一个关键的UI优化问题:如何确保输入栏在键盘出现时能够自动调整其位置,以便用户可以舒适地看到和...
同时,需要处理键盘弹出和输入框自动上移的问题,以确保用户能方便地看到自己的输入内容。 5. UICollectionView图片拖动:在评论或聊天界面中,如果需要展示多张图片,可以利用UICollectionView的拖动功能。通过...
当用户在UITextField或者UITextView中输入时,键盘的弹出会遮挡部分屏幕内容,这可能导致用户无法看到或访问到屏幕下方的信息。因此,开发者通常需要调整界面布局,以便在键盘出现时保持用户体验的连贯性。此外,...
标题“iOS 软键盘遮挡问题 点击外部隐藏软键盘”所提及的问题是,当用户在移动设备上使用应用时,软键盘弹出可能会遮挡到屏幕下方的部分内容,这可能导致用户体验下降。为了解决这个问题,iOS提供了多种方法来处理软...
在iOS开发中,特别是在iOS 7及更高版本中,用户界面设计的一个常见问题是虚拟键盘弹出时会遮挡UITextField或UITextView,导致用户无法看到正在输入的文本。本篇文章将详细探讨如何解决这一问题,主要关注如何在iOS 7...
在iOS开发中,用户在与UITextField或UITextView交互时,会自动弹出系统键盘以便输入文本。然而,有时用户可能希望快速隐藏键盘以获得更好的用户体验,例如在浏览内容或者进行其他操作时。本文将详细讲解如何在iOS...
是开发者希望在用户触发输入事件,例如点击文本框(UITextField或UITextView)时,自定义的视图能够保持在键盘上方可见,从而提供持续的信息展示或者操作界面。以下将详细阐述实现这一功能的关键知识点: 1. **键盘...
在用户开始编辑文本时,系统会自动弹出键盘,但默认情况下,键盘的出现并不会改变UITextField的位置。为了优化用户体验,开发者需要手动处理键盘的显示与隐藏,使UITextField能避开键盘,保持在可视范围内。 实现...
当用户点击这些视图时,系统会自动弹出键盘。然而,系统默认的键盘并不支持自定义按钮的添加。为了实现这个功能,我们需要创建一个自定义键盘视图(UIInputView)或者自定义键盘类(UIKeyboardType)。 1. 自定义...
- 使用`UIKeyboardWillShowNotification`和`UIKeyboardWillHideNotification`通知来监听键盘的显示和隐藏,以便在键盘弹出时调整界面布局。 9. **自动缩放** - 为了解决输入后`UITextView`的尺寸变化,可以设置`...
这个"IOS应用源码——点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容"压缩包中的源码,就是专门针对这一场景的解决方案。 首先,我们需要理解苹果提供的Auto Layout和Size Classes机制...
当用户点击输入框时,键盘自动弹出,我们可以通过UITextFieldDelegate协议中的方法来监听键盘的显示和隐藏,如`textFieldShouldBeginEditing`和`textFieldShouldEndEditing`。此外,为了提高用户体验,我们还可以...
5. 可能使用了`NotificationCenter.default.addObserver`来监听键盘的显示和隐藏状态,以便在键盘弹出和收起时执行相应的布局更新。 通过这个开源项目,开发者可以学习到如何更有效地管理和优化用户在`UITextField`...
3. **自动布局(Auto Layout)**:在键盘弹出时,可能会遮挡到屏幕下方的输入框。为了解决这个问题,可以利用Auto Layout动态调整界面元素的位置。在键盘显示和隐藏的通知回调中,更新约束可以使内容随键盘的出现和...
当用户需要在UITextField或UITextView中输入信息时,弹出的键盘可能会遮挡住这些元素,导致用户体验下降。`IQKeyboardManager`就是为了解决这个问题而诞生的一个第三方库,尤其在Swift开发中,它是一个广泛使用的...
这个"IOS应用源码之点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容 .rar"文件中,就包含了实现这种功能的具体源代码。 首先,我们需要理解苹果提供的Auto Layout和Size Classes机制。...