Как обеспечить видимость UITableViewCell? - PullRequest
1 голос
/ 14 декабря 2010

Я использую InputAccessoryView, поэтому в верхней части клавиатуры для приложения для iPhone появляется панель инструментов. Когда появляется клавиатура, она прокручивает UITableView вверх, чтобы была видна ячейка, которая стала первым респондентом. Когда я нажимаю «Далее» на моей клавиатуре, которая перемещает фокус на следующую строку UITableView, ячейка теперь находится под InputAccessoryView.

Как я могу убедиться, что активная ячейка отображается и не закрыта InputAccessoryView?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 декабря 2010

Если я правильно понимаю, вы хотели бы прокручивать таблицу программно, чтобы ваша выделенная ячейка всегда была видимой? Если это так, у вас есть несколько вариантов сделать это:

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); 

но я не уверен, будет ли выбрана нужная ячейка. С этим определенно стоит поэкспериментировать. Это всего лишь несколько идей для начала, но это должно быть то, что вы ищете. Надеюсь это поможет!

0 голосов
/ 15 декабря 2010

Используйте UITableViewController вместо UIViewController, тогда табличное представление будет прокручиваться автоматически.

Подключите ваш UITableView к свойству TableView UITableViewController (не добавляйте его как подпредставление свойства View UITableViewController!).

Также убедитесь, что для свойства AutoresizingMask вашего UITableView установлено значение 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...