setContentOffset работает, только если для animated установлено значение YES - PullRequest
4 голосов
/ 27 мая 2010

У меня есть UITableView, который я хотел бы отображать на 100px вниз. По какой-то причине это работает только тогда, когда для анимированного установлено значение YES. Почему это?

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    /*[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] 
                          atScrollPosition:UITableViewScrollPositionNone 
                                  animated:NO];*/

    /*[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:1] 
                                        atScrollPosition:UITableViewScrollPositionNone 
                                        animated:NO];*/

    [self.tableView setContentOffset:CGPointMake(0,100) animated:YES];
}

Ответы [ 4 ]

0 голосов
/ 15 марта 2016

Переместите «setContentOffset» в «viewDidLoad» и добавьте «reloadData» до этого:

В Свифте:

func viewDidLoad() {
    super.viewDidLoad()
    tableView.reloadData() // important for scrolling to be possible
    tableView.setContentOffset(newContentOffset), animated: false)
    }
0 голосов
/ 04 апреля 2011

Что если вы попытаетесь использовать setFrame вместо setContentOffset?

Вы должны добавить этот код в метод viewDidAppear:


[self.tableView setFrame:CGRectMake(0, 100, 320, 380)];

В зависимости от других элементов, которые вы видите (например, контроллер навигации, панель инструментов и т. Д.), Вам придется настроить 380 на что-то другое.

0 голосов
/ 11 июня 2011

Увидел, что вы подняли аналогичный вопрос, но с несколько иной предысторией, здесь.

Я ответил там. Может быть кому-нибудь пригодится.

0 голосов
/ 27 мая 2010

Используя базовое приложение для навигации, которое предоставляет XCode, и предоставляя ему несколько ячеек таблицы, оно отлично работает с тем, что вы дали. Вы пытались установить смещение содержимого в viewDidAppear, а не в viewWillAppear?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...