我正在使用InputAccessoryView,因此我的键盘上会出现一个工具栏,用于iPhone应用程序。当键盘出现时,它会向上滚动UITableView,以便单元格成为第一响应者。当我点击键盘上的“下一步”,将焦点移动到下一个UITableView行时,单元格现在在InputAccessoryView下面。
如何确保活动单元格在视图中并且不被InputAccessoryView覆盖?
谢谢。
答案 0 :(得分:4)
如果我理解正确,您希望以编程方式滚动表格,以便突出显示的单元格始终是可见的?如果是这样,您可以选择以下几种方法:
tableView.ScrollToRow(indexPath, UITableViewScrollPosition.Top, true);
这将滚动到indexPath给出的单元格 - 如果你没有使用indexPath,你总是可以使用:
tableView.ScrollRectToVisible(new RectangleF(0, Ydisplacement, tableView.Width, tableView.Height), true);
(Ydisplacement是您想要滚动的桌子下方的距离)
你也可以使用:
tableView.ScrollToNearestSelected(UITableViewScrollPosition.Top, true);
但我不确定是否会选择您想要的单元格。这绝对值得尝试。 这只是让您入门的一些想法,但应该是您正在寻找的。希望这可以帮助!
答案 1 :(得分:0)
使用UITableViewController而不是UIViewController,而表视图将自动滚动。
将UITableView连接到UITableViewController的TableView属性(不要将其添加为UITableViewController的View属性的子视图!)。
还要确保将UITableView的AutoresizingMask属性设置为FlexibleHeight
示例:
public class YourTableViewController : UITableViewController
{
private UITableView _yourTableView;
public override void ViewDidLoad()
{
_yourTableView = new UITableView(View.Bounds, UITableViewStyle.Plain);
_yourTableView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight;
TableView = _yourTableView;
}
}