`

UITableView和键盘滚动问题

    博客分类:
  • ios
 
阅读更多

 

- (void)viewWillAppear:(BOOL)animated {
	[[NSNotificationCenter defaultCenter] addObserver:self 
											 selector:@selector(keyboardWillShow:) 
												 name:UIKeyboardWillShowNotification 
											   object:nil]; 
	
	[[NSNotificationCenter defaultCenter] addObserver:self 
											 selector:@selector(keyboardWillHide:) 
												 name:UIKeyboardWillHideNotification 
											   object:nil];
}

- (void)viewWillDisappear:(BOOL)animated {
	[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
	[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];

 

-(void) keyboardWillShow:(NSNotification *)note { 
	NSDictionary *info = [note userInfo];
	CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
	CGRect bkgndRect = self.ncTableView.frame;
	bkgndRect.size.height += kbSize.height;
	self.ncTableView.contentSize = bkgndRect.size;
//	CGFloat tmpY=activeField.frame.origin.y-((self.view.frame.size.height-kbSize.height)-activeField.frame.size.height-8);
//	if(tmpY>0){		
//		[self.scrollView setContentOffset:CGPointMake(0.0, tmpY) animated:YES];		
//	} 
} 

- (void)keyboardWillHide:(NSNotification*)aNotification{
	NSTimeInterval animationDuration=0.30f;
	[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
	[UIView setAnimationDuration:animationDuration];
	
	
	NSDictionary *info = [aNotification userInfo];
	CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

	CGRect bkgndRect = self.ncTableView.frame;
	bkgndRect.size.height -= kbSize.height;
	//NIF_DEBUG(@"kbSize x:%f %f",kbSize.height,kbSize.width);
	
	self.ncTableView.contentSize = bkgndRect.size;
	[UIView commitAnimations];
	
	
	//[self.scrollView setContentOffset:CGPointMake(0.0, activeField.frame.origin.y - 15) animated:YES];
	//CGFloat tmpY=activeField.frame.origin.y-((self.view.frame.size.height-kbSize.height)-activeField.frame.size.height-8);
	
}
分享到:
评论

相关推荐

    可以左右滑动的UITableView

    7. 键盘通知:如果滑动操作涉及到输入,还需要关注键盘的显示和隐藏,以避免键盘遮挡滑动视图。可以注册UIKeyboardWillShowNotification和UIKeyboardWillHideNotification通知来调整内容区域。 通过以上知识点的...

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

    除了以上方法,还可以使用UIScrollView或UITableView来处理键盘遮挡问题。通过调整这些滚动视图的contentInset和scrollIndicatorInsets,可以在键盘出现时自动上移内容,确保用户仍然可以看见并操作被键盘遮挡的部分...

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

    此外,`UIScrollView`或`UITableView`等可滚动视图也可以用来处理键盘遮挡问题。可以通过调整内容偏移量来确保输入框始终可见。 4. 自动调整scrollView:对于使用`UIScrollView`的场景,`scrollView....

    swift-IQKeyBoardManager解决键盘遮挡住输入框的问题

    在压缩包文件`hackiftekhar-IQKeyboardManager-526e706`中,包含了`IQKeyboardManager`项目的源码,你可以深入研究其内部实现,学习如何通过通知机制和Auto Layout来解决键盘遮挡问题。这将有助于提升你的iOS开发...

    IOS键盘问题

    3. **滚动视图**:`UIScrollView`及其子类(如`UITableView`和`UICollectionView`)可以通过调整contentInset和contentOffset来适应键盘的变化。`TPKeyboardAvoiding`会自动处理这些调整,使得视图在键盘出现时自动...

    文本滚动显示.e.rar

    2. **滚动机制**:滚动机制主要分为两种类型——自动滚动和手动滚动。自动滚动是指文本按照设定的速度自动滚动,常用于公告、新闻滚动等场景;手动滚动则是由用户通过鼠标滚轮、触摸滑动或者界面上的滚动条控制。 3...

    键盘和输入框

    当设置为`.never`时,滚动视图(如UITableView或UICollectionView)不会自动调整内边距以适应键盘。这时,我们可以在键盘显示和隐藏时手动调整`contentInset`,确保输入框始终可见。 在处理键盘事件时,还要考虑到...

    呈现表单时如何滚动UITableView

    当涉及到表单呈现时,UITableView的滚动功能显得尤为重要,因为用户可能需要滚动浏览和填写多行数据。在Objective-C中,通过正确实现UITableViewDelegate方法,我们可以确保表单的流畅滚动体验。以下是一些关键知识...

    iOS 键盘遮挡输入框万能解决方案(多个输入框)

    如果有滚动视图(如UIScrollView或UITableView),还可以考虑使用contentInset或scrollIndicatorInsets来自动滚动到当前激活的输入框。 压缩包中的"keyboardSet"可能包含了具体的代码示例、类库或者一个完整的项目...

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

    通过使用FKFormMapping,可以轻松地使表单元素在键盘出现时自动滚动到可见位置。 6. **IQKeyboardManager**:这是一个非常受欢迎的第三方库,它能自动处理键盘与输入框之间的交互,无需手动处理通知或布局。只需将...

    swift-RPBottomInputBox一个适用于列表底部添加评论的输入框

    3. **键盘管理**:该组件包含键盘管理功能,能智能地处理键盘弹出和隐藏,避免键盘遮挡输入框。当键盘出现时,输入框会自动调整位置,保持可见,提供更好的用户体验。 4. **自定义样式**:开发者可以根据自己的需求...

    非输入区键盘消失的方法

    如果你的界面包含一个UIScrollView(例如UITableView或UICollectionView),可以监听滚动事件来隐藏键盘: ```swift class ViewController: UIViewController, UIScrollViewDelegate { override func viewDidLoad...

    ios-键盘遮挡输入框处理.zip

    这个问题在滚动视图(UIScrollView、UITableView或UICollectionView)中尤为常见。 解决键盘遮挡输入框的方法多种多样,以下是一些常见的策略: 1. **调整输入框的位置**:通过监听键盘显示和隐藏的通知,如`...

    ios的自定义表情键盘

    可以监听`UITextField`或`UITextView`的`becomeFirstResponder`和`resignFirstResponder`方法来控制键盘的显示和隐藏。 6. 考虑性能和用户体验: 由于表情键盘可能会包含大量的图片,因此要注意优化内存管理和加载...

    键盘的收起

    为了解决这个问题,开发者通常会实现一个功能,使得键盘升起时,关联的输入框(如UITextField)能够跟随键盘移动,确保用户始终能看到正在编辑的内容。这个功能在iOS中可以通过监听键盘通知来实现。以下是关于"键盘...

    IOS应用源码Demo-出现键盘,输入区域向上移动以便显示出输入的区域-毕设学习.zip

    为了解决这个问题,苹果提供了`UIScrollView`(包括`UITableView`和`UICollectionView`)的自动调整内容偏移量功能。 在iOS中,如果你的界面包含一个`UIScrollView`(例如,一个滚动视图或者表格视图),并且在这个...

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

    这个过程中,可能需要考虑到滚动视图(如UIScrollView或UITableView)的情况,需要调整的内容不只是整体视图的位置,还可能包括滚动视图的内容 inset。在这种情况下,可以使用`contentInset`和`...

    IOS应用源码Demo-点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容-毕设学习.zip

    另外,如果视图是滚动视图(如UIScrollView或UITableView),我们还需要考虑滚动到输入框所在的位置,确保用户可以立即看到输入框: ```swift func scrollToActiveTextField(textField: UITextField) { let ...

    随机键盘的 Passcode 效果,全力保证数据安全.zip

    再者,IgListKit是由Instagram开发的一个高性能的列表框架,它优化了UITableView和UICollectionView的性能。在Passcode项目中,IgListKit可能被用来高效地展示随机键盘的按键布局,确保即便在大量数据或快速交互的...

Global site tag (gtag.js) - Google Analytics