【问题标题】:UITableViewController as a childview controller in a smaller view - keyboard woesUITableViewController 作为小视图中的子视图控制器 - 键盘问题
【发布时间】:2018-07-09 16:13:31
【问题描述】:

这是一个非常规的设置,我对此表示赞赏,但我在另一个 UITableView 的 UITableViewCell 中添加了一个 UITableViewController 作为子视图控制器。哇,是的。这是一个复杂的视图,它在多个地方被重用,代码很干净,它可以工作 98%,所以我很高兴。

问题是当我的 Franken-TableViewController 中的一个文本字段成为第一响应者时。因为控制器不知道它在哪里,或者它在 tableview 单元格中,所以 tableview 滚动到错误的偏移量。我显然想要 UITableViewController 提供的自动滚动行为,但我意识到我必须帮助它找出滚动到的位置。

我不确定 UITableViewController 正在查看哪些参数来确定滚动到的位置。本文正在讨论一个非常相似的问题,以及内容仅评估单个子视图深度的事实。 Extra Space When Embedding Table Views

建议我如何在不使用 UITableViewController 重构的情况下解决这个问题?

【问题讨论】:

  • 我知道您想使用UITableViewController,但您从中得到了什么,您不能只使用UIViewController
  • 我建议在文本字段成为第一响应者时尝试为tableview.contenInset 设置不同的值(例如在textFieldShouldBeginEditing: 中)

标签: ios


【解决方案1】:

答案是不使用 UITableViewController。 是的,UITableViewController 将免费为您提供避免使用文本字段的键盘,但众所周知,没有免费的午餐。

您可以通过多种方式阻止动画的发生并重新计算自己,但实际上,归根结底,这只是一种狡猾的技巧。

我最终将我的 UITableViewControllers 重构为 UIViewControllers,并将 IBOutlets 重构为 tableViews。您只需要自己添加一些键盘避免代码,您的应用中可能已经有这些代码。

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多