Как правильно использовать UITableViewCells в раскадровке при добавлении в UITableView - PullRequest
0 голосов
/ 12 июня 2018

Надеюсь, что кто-то может помочь, когда я наткнулся на контрольно-пропускной пункт.Я начал с UIScrollview, который содержал бы контент с динамическим переключением высоты.После нескольких проблем с AutoLayout я переключился на использование UITableView.

В тот момент, когда у меня есть UITableView в главном UIView, а затем я разделяю UITableViewCells в раскадровке.Каждый UITableViewCell подключен через IBOutlet.

Теперь, чтобы переключить содержимое, я использую следующее для reloadData

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    if(contentToShow == 1){

        UITableViewCell *cell = self.cellHome;

        self.viewIcon1.layer.cornerRadius = 40;
        self.viewIcon1.layer.masksToBounds = true;
        self.viewIcon2.layer.cornerRadius = 40;
        self.viewIcon2.layer.masksToBounds = true;
        self.viewIcon3.layer.cornerRadius = 40;
        self.viewIcon3.layer.masksToBounds = true;
        self.viewIcon4.layer.cornerRadius = 40;
        self.viewIcon4.layer.masksToBounds = true;


        [self addUnderline:self.imageViewTitle];
        [self addUnderline:self.imageViewTitle2];
        [self addUnderline:self.imageViewTitle3];

        return cell;

    }else {

        UITableViewCell *cell = self.cellCustInfo;

        [self addUnderline:self.imageViewTitle4];

        return cell;

    }

}

Теперь это, похоже, меняет содержимое UITableView, но у меня возникают странные проблемыс позицией прокрутки сразу после изменения.Я использую следующее, чтобы попытаться вернуться к вершине UITableView.

- (IBAction)showFAQScreen {

    contentToShow = 2;


    [UIView animateWithDuration:0.4 animations:^{
        self.tableViewContent.contentOffset = CGPointZero;}];

    [self.tableViewContent reloadData];

    [self showMenu:nil];

}

Если свиток не перемещен, то контент отображается правильно, если он немного переместился, то контент прокручивается какожидается.Однако, если прокрутка значительно сместилась вниз, прокрутка переходит на дно, и только когда я коснусь прокрутки, она исправляет себя.Любые идеи, что происходит и предложения по другому подходу?

Спасибо

1 Ответ

0 голосов
/ 12 июня 2018

Можете ли вы попробовать

UIView animateWithDuration:duration  animations:^{
  self.tableViewContent.contentOffset = CGPointZero;
} completion:^(BOOL finished) {
     [self.tableViewContent reloadData]; 
     [self showMenu:nil];
}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...