UIScrollView зависает при нажатии кнопки «Назад»? - PullRequest
0 голосов
/ 05 июня 2019

У меня есть (UIView и UICollectionView в UIScrollView) как 1stVC. Я должен прокручивать оба одновременно, для которых я уже не смог прокрутить представление коллекции. Итак, в первый раз, когда я запускаю этот экран, я могу прокрутить весь вид, но когда я нажимаю (далее ViewController) 2ndVC, а затем нажимаю кнопку "Назад", чтобы 1stVC, мой вид прокрутки не выполняет предварительную проверку, он получил Freeze.

Попробовал этот метод: -

-(void)viewDidLayoutSubviews{
    [super viewDidLayoutSubviews];

    dispatch_async(dispatch_get_main_queue(), ^ {
        CGRect contentRect = CGRectZero;

        for(UIView *view in self.scrollView.subviews)
            contentRect = CGRectUnion(contentRect,view.frame);

        self.scrollView.contentSize = contentRect.size;
    });
}

Попробовал этот метод: -

-(void)viewDidLayoutSubviews{
    [super viewDidLayoutSubviews];

    [_scrollView setContentSize:CGSizeMake(_scrollView.frame.size.width, _scrollView.frame.size.height)];

}

И для получения динамической высоты представления коллекции я сделал это

CGFloat height = _collectionCompass.contentSize.height;

Что я предоставил ScollView ContentSize.

_scrollView.contentSize = CGSizeMake(_scrollView.frame.size.width, height);

Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 05 июня 2019

Что я действительно предлагаю, так это удалить представление прокрутки и выполнить все действия в представлении коллекции, поскольку при просмотре прокрутки вы упускаете некоторые преимущества (например, повторное использование ячеек).Также просмотр коллекции в представлении прокрутки это плохая практика.Из Руководство по стилю Apple :

Не размещайте представление прокрутки внутри другого представления прокрутки.Это создает непредсказуемый интерфейс, которым сложно управлять.

Если ваш пользовательский интерфейс представлен в виде списка, вы можете добавить представление в качестве заголовка представления коллекции или в качестве другой ячейки.При таком подходе вы можете удалить код из viewDidLayoutSubviews

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