如何在键盘上方滚动自定义 UITextField 单元格
Posted
技术标签:
【中文标题】如何在键盘上方滚动自定义 UITextField 单元格【英文标题】:How to scroll cutsom UITextFieldCell above UIKeyboard 【发布时间】:2013-12-08 10:26:16 【问题描述】:我有一个使用自定义 UITableViewCell 的 UITableView。我的 UITableVewCell 里面有两个文本字段,我在我的主 ViewController 中添加了一个标签,其中包含我的自定义 UITableViewCell 的 UITableView。
这是我tableView:cellForRowAIndexPath:
中的代码
static NSString *CellIdentifier = @"Cell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[CustomFCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSString *widthString = [currentFDictionary objectForKey:@"MM"];
if ((NSNull *) widthString != [NSNull null])
cell.widthTexField.text = widthString;
cell.widthTexField.tag = indexPath.row;
else
cell.widthTexField.text = @" ";
NSString *heightString = [currentFDictionary objectForKey:@"NM"];
if ((NSNull *) heightString != [NSNull null])
cell.heightTextField.text = heightString;
cell.heightTextField.tag = indexPath.row;
else
cell.heightTextField.text = @" ";
return cell;
我想知道如何使用 .tag
滚动 UIKeyboard 上方的 UITableViewCell,现在将显示在视图中。
任何帮助将不胜感激。
【问题讨论】:
如果您使用的是自定义单元格 xib,那么cell = [[CustomFCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
似乎不起作用......它对您有用吗? (但这不是主要问题,只是观察)
【参考方案1】:
我能想到的一个简单方法是使用-scrollToRowAtIndexPath:atScrollPosition:animated:
在UITextField
对象上设置委托。
cell.widthTexField.delegate = self;
//...
cell.heightTextField.delegate = self;
现在,以这种方式使用-textFieldShouldBeginEditing:
委托方法:
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
NSIndexPath *currentSelectedIndexPath = [self.tableView indexPathForSelectedRow];
[self.tableView scrollToRowAtIndexPath:currentSelectedIndexPath
atScrollPosition:UITableViewScrollPositionTop
animated:YES];
//NOTE: this way we don't really need to work with the textField tag per se
//(unless you are using it elsewhere as well)
//Instead, we work with the entire cell and scroll it to the desired position
这可能并不完美,因为我没有在这里测试过,但这是一般的想法
【讨论】:
以上是关于如何在键盘上方滚动自定义 UITextField 单元格的主要内容,如果未能解决你的问题,请参考以下文章
是否有任何通用解决方案可以在屏幕上的键盘上方滚动 UITextView 和 UITextField
在 UITextField 和软件键盘 ios 之间提供最小填充