一旦拥有TableView,UITableViewController就不会自动滚动键盘在UIViewController的子视图上推送

ben*_*igi 2 iphone uitableview

我已经玩UITableView了一段时间,在敲击键盘和滚动问题时,我决定通过使用它来解决它,UITableViewController并在键盘出现时利用自动滚动.不幸的是,这对我来说并不存在,我无法弄清楚为什么,我已经尝试了很多东西并且放弃去问社区.

这是我到目前为止:

  1. 定期UIViewController处理UIView(MyView.xib)(这也是根视图)
  2. 在单独的文件中定期UITableViewController处理a (MyTable.xib)UITableViewXIB
  3. 常规UITableViewCell被拖入(MyTable.xib)并与之并排放置UITableView.这UITableViewCell没有自定义类.还有一个连接到UITableViewController课堂的插座.
  4. 一个常规的UITextField坐在UITableViewCell
  5. 我在MyTable.xib相关文件的所有者身份对UITableViewController
  6. 我已将该委托和数据源连接UITableView到文件的所有者

这就是它在MyTable.xib中的IB外观

  • UITableView
  • UITableViewCell
    • UITextField

因此,当我在UITableViewController中生成我的表行时,我将前5行作为常规单元格出列,而对于最后一行,我返回我的出口"myCell"(UITableViewCell).这是具有UITextField的那个.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    if (indexPath.row == 5) return myCell;
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    cell.textLabel.text = [NSString stringWithFormat:@"Test"];

    return cell;
}
Run Code Online (Sandbox Code Playgroud)

最后,在我ViewController的作品中viewDidLoad,我创建了一个实例UITableViewController并显示它.它成功地在底部显示了5行和我的自定义行.一切都在主视图中,但......

- (void)viewDidLoad
{
[super viewDidLoad];

mtc = [[MortgageTableController alloc] initWithNibName:@"MyTable" bundle:nil];
mtc.view.frame = CGRectMake(0, 44, 320, 375);
[self.view addSubview:mtc.view];
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,如果我点击它UITextField,我看不到表格在视图中自动滚动.我认为这是使用的优势之一,UITableViewController或者我可能在这里做错了.

我也尝试选择和/或滚动表格到行但没有运气.

Son*_*lin 12

您需要调用super viewWillAppear来自动滚动.

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    // your code
}
Run Code Online (Sandbox Code Playgroud)

编辑:7月19日,这个工作的前提条件是你的控制器是UITableViewController的子类