ios - iOS中动态改变UITableViewCell的位置

标签 ios objective-c iphone uitableview

我的应用程序中有一个自定义 tableView。在这个自定义单元格中,我有一个文本字段。当用户点击此文本字段时,将出现键盘。此时我想更改 Tableview 中所选单元格的位置。我附上了实际输出的快照,还附上了我预期的快照。

图像 1 - 普通屏幕,它包含自定义 UITableView。

enter image description here

当我选择文本字段(在上图中标记为红色圆圈)时,键盘会像图 2 中那样出现。

enter image description here

但我除了将所选文本字段的位置更改为键盘的上方之外,如图 3 所示。

enter image description here

请帮我解决这个问题。

最佳答案

如果代码中只有一个 textField,简单的方法可能是:

-向键盘外观添加观察者:

  [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardAppear) name:UIKeyboardWillShowNotification object:nil];

-及其方法:

  -(void)keyboardAppear
{
[self.tableView setContentOffset:CGPointMake(0, yOfYourTextField)];
}

如果您有多个文本字段,最好的选择是对所有这些文本字段实现委托(delegate),并且其委托(delegate)滚动 tableView。

 -(void)textFieldDidBeginEditing:(UITextField *)textField
{
[self.tableView setContentOffset:CGPointMake(0, textField.tag * 40 -70) animated:YES];
//.. more if you need
}

如果您在 UIViewController 中使用 UITableViewController 而不是 tableView,则滚动行为是自动的。

关于ios - iOS中动态改变UITableViewCell的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27397220/

相关文章:

ios - 为什么我的 Swift 中的正则表达式无法编译?我该如何给它一个可变字符串呢?

iphone - 线程 1 : EXC_BAD_ACCESS ( code=2, 地址=0x0) { switch case 内}

iphone - 提高核心动画的性能

ios - 我如何对 SKSpriteNode 进行 alpha mask ?

ios - UITabbarController 替换最后一个 View Controller

ios - 需要随着底部列表滚动移动顶部红色选择器

ios - 当谷歌名称从可选值返回 nil 时应用程序崩溃

iphone - 限制 UITableView 的滚动

ios - 在我的 UITextView 中使用 NSMutableAttributedString 但现在用户无法编辑文本 [剪切、复制、删除]

objective-c - 填充 map View 时如何设置两种不同的图钉颜色