iphone - keyboardWillShowNotification 边缘案例

标签 iphone ios uitableview uikit nsnotificationcenter

这是操作顺序的问题

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];    
[nc addObserver:self 
       selector:@selector(keyboardWillShow:) 
           name:UIKeyboardWillShowNotification 
         object:nil];
[nc addObserver:self 
       selector:@selector(keyboardWillHide:) 
           name:UIKeyboardWillHideNotification 
         object:nil];

然后我向 UITableViewCell 添加一个文本框:

[textField addTarget:self 
              action:@selector(textFieldBegin:) 
    forControlEvents:UIControlEventEditingDidBegin];

[cell addSubview:textField];

在 textFieldBegin 中,我使用 scrollToRowAtIndexPath 移动到正在编辑的单元格。
在 keyboardWillShow 中,我调整了 tableView 的框架以允许使用键盘。
textFieldBegin keyboardWillShow 之前被调用,因此第一次显示时没有滚动空间。

有没有一种有效的方法来解决这个疏忽?

最佳答案

您可以在开始期间将当前滚动位置存储在一个变量中,然后在 keyboardwillshow 通知中您可以重新滚动到存储在该变量中的任何位置。

我认为这可以让您将不同的动画保留在它们所属的位置。

关于iphone - keyboardWillShowNotification 边缘案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810290/

相关文章:

ios - 在重新启动 iOS 之前,此保存的数据似乎无法访问

ios - 当自定义 UITableViewCell 突出显示时,它全部变成蓝色

ios - 在 iOS 14 中在主应用程序和小部件之间共享 UserDefaults

iOS 8 键盘扩展按钮不显示

ios - 尝试在 MonoTouch.CoreGraphics.CGContext.DrawPDFPage 中进行 JIT 编译方法异常

iOS:如果未安装应用程序,Apple Universal Link continueUserActivity 方法不会调用?

ios - 排列底部工具栏问题iOS7

ios - 在 Swift 中, future 的新 API 是否会被 App Store 上现有应用程序中的用户定义方法覆盖?

ios - 尝试编写一个谓词来与一对多关系的第一个对象进行比较

ios - 核心数据中的获取的属性返回不正确的计数