UITableView не будет прокручиваться до определенной позиции - PullRequest
1 голос
/ 16 сентября 2010
[self.tableView setContentOffset:CGPointMake(0,48) animated:NO];

У меня есть UITableView, в заголовке которого есть UIView. Мой UITableView не будет прокручиваться до (0,48), если не анимирован: ДА. Я не хочу, чтобы это оживило.

Кто-нибудь знает, что случилось?

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

Чтобы установить UIView для заголовка раздела, вы используете функцию:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 

Я подозреваю, что вы вызываете setContentOffset где-то в viewWillAppear, но эта функция вызывается позже.И я думаю, что это перезаписывает ваш контент Offset.... не знаю, почему это не так, когда анимация - ДА, но в любом случае просто поместите ваш setContentOffset в эту функцию следующим образом:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{
    UIView *headerView = nil;
    if (section == SEC_WITH_IMAGE_HEADER) {
        headerView = self.neededView;
    }   
    [self.tableView setContentOffset:CGPointMake(0,48) animated:NO];
    return headerView;
}

Сработало для меня, надеюсь, так будет и для кого-то еще.*

2 голосов
/ 16 сентября 2010

Вы можете попробовать метод с именем -scrollRectToVisible: animated .


Я неправильно понял ваш вопрос. Итак, что вы хотите, чтобы инициализировать табличное представление со смещением y-координаты примерно на 48 пикселей?

Это заставит tableView начинаться с yPos 48.

tableView.contentInset = UIEdgeInsetsMake(48, 0.0, 0.0, 0.0);

Надеюсь, это поможет вам ....

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