当键盘出现时,如何阻止 tableView 滚动? [复制]
Posted
技术标签:
【中文标题】当键盘出现时,如何阻止 tableView 滚动? [复制]【英文标题】:How do I stop a tableView from scrolling when the keyboard appears? [duplicate] 【发布时间】:2014-03-17 05:35:46 【问题描述】:我有一个 UITableViewController,每个都包含一个 UITextView 位于每个单元格顶部的单元格。 自然地,当与 textBox 的交互开始时,键盘会出现,同时整个表格也会随着键盘的出现而向上滚动,从而导致 textBox 消失。
因为我已经为我的 tableView 启用了分页,所以在向上滚动后它会再次向下滚动以便 textBox 在视图中。
我想知道是否可以在键盘出现时禁用表格滚动,如果可以,如何?
【问题讨论】:
【参考方案1】:自动滚动行为位于 UITableViewCONTROLLER 功能中。要禁用自动滚动,我找到了两种方法:
1) 使用 UIViewController 代替 UITableViewController - 自行设置数据源和委托
2) 覆盖 viewWillAppear-Routine - 并且不要调用 [super viewWillAppear: animated] 使用这两种解决方案,您不仅可以禁用 Autoscroll,还可以禁用其他一些不错但不是
基本功能,在 Apple 的类参考概述中描述:http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewController_Class/Reference/Reference.html
【讨论】:
这个答案取自这里:***.com/a/12010951/1751778 我正在使用UITableViewController
,如果我不使用supper.viewWillApper()
函数,那么我的页脚不会出现在keyBoard
的顶部,我该怎么办Means i want to stop auto scrolling and want footer view on the top of keyboard while editing
【参考方案2】:
我们可以通过多种方式禁用 tableview 滚动。
1) 在 textView 委托方法中
- (void)textViewDidBeginEditing:(UITextView *)textView
tableView.scrollEnabled = NO;
- (void)textViewDidEndEditing:(UITextView *)textView
tableView.scrollEnabled = YES;
2) 键盘通知
- (void)viewWillAppear:(BOOL)animated
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification object:self.view.window];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification object:self.view.window];
- (void)viewWillDisappear:(BOOL)animated
// unregister for keyboard notifications while not visible.
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
- (void)keyboardWillShow:(NSNotification *)notif
tableView.scrollEnabled = NO;
- (void)keyboardWillHide:(NSNotification *)notif
tableView.scrollEnabled = YES;
【讨论】:
不能快速工作 ;(,有什么想法吗?!以上是关于当键盘出现时,如何阻止 tableView 滚动? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
tableview 中的两个 TextFields,都在滚动视图上,当键盘出现 iPhone 时消失