Странная ошибка прокрутки с пергаментом

#ios #swift #parchment

Вопрос:

Недавно мы решили попробовать включить Пергамент в наше приложение, так как он идеально подходит для наших нужд. Вместе с ним мы также добавили эффект сворачивающегося заголовка. Поэтому мы сначала создали тестовый проект, чтобы протестировать его, и как только мы переработали его в наше собственное приложение, мы заметили очень странную ошибку, с которой мы просто не можем точно определить проблему. Сначала мы подумали, что, может быть, это что-то в нашем собственном приложении, но я открыл тестовый проект, и он тоже там.

Этот GIF покажет вам проблему. Это еще хуже, когда у нас есть только одна вкладка/экран. Затем даже становится трудно прокрутить вниз для правильного обновления, не вызывая этой проблемы.

gif

У кого-нибудь есть какие-либо идеи относительно того, почему и где это может происходить ?

Пример кода для реализации пергамента:

 private var pagingViewController = PagingViewController()

pagingViewController.dataSource = self
pagingViewController.register(PagingCustomCell.self, for: CustomPagingItem.self)
addChild(pagingViewController)
pagingViewController.borderOptions = .hidden
pagingViewController.menuItemSize = .selfSizing(estimatedWidth: 100, height: 40)
pagingViewController.indicatorClass = CustomIndicatorView.self
pagingViewController.indicatorOptions = .visible(
    height: 32,
    zIndex: -1,
    spacing: .zero,
    insets: UIEdgeInsets(top: 0, left: 0, bottom: 5, right: 0)
)
pagingViewController.indicatorColor = .purple
pagingViewController.collectionView.contentInset = UIEdgeInsets(top: 0, left: 16, bottom: 0, right: 16)

view.addSubview(pagingViewController.view)
pagingViewController.backgroundColor = .clear
pagingViewController.didMove(toParent: self)
pagingViewController.view.translatesAutoresizingMaskIntoConstraints = false
pagingViewController.view.snp.makeConstraints { (m) in
    m.top.equalTo(headerView.snp.bottom)
    m.left.right.bottom.equalToSuperview()
}

// Put shadow beneath tabs for collapsing header
pagingViewController.collectionView.layer.masksToBounds = true
pagingViewController.collectionView.layer.shadowOffset = CGSize(width: 0, height: 1)
pagingViewController.collectionView.layer.shadowRadius = 1
pagingViewController.collectionView.layer.shadowOpacity = 0.3

extension ViewController: PagingViewControllerDataSource {
    
    func numberOfViewControllers(in pagingViewController: PagingViewController) -> Int {
        return pages.count
    }
    
    func pagingViewController(_: PagingViewController, viewControllerAt index: Int) -> UIViewController {
        let currentVc = pages[index]
        
        if let currentVc = currentVc {
            return currentVc
        } else {
            let tableViewVC = TableViewController()
            tableViewVC.innerTableViewScrollDelegate = self
            
            pages[index] = tableViewVC
            
            return tableViewVC
        }
    }
    
    func pagingViewController(_: PagingViewController, pagingItemAt index: Int) -> PagingItem {
        return CustomPagingItem(index: index, text: "View (index 1)")
    }
}
 

Ответ №1:

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

Сообщение на Github с ответом