как сделать вид прокрутки с представлением коллекции с помощью Swift - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть представление коллекции внутри UIViewController.Контроллер представления также имеет другой UIView (назовем его welcomeView), который расположен над представлением коллекции.Когда я прокручиваю представление коллекции, я хотел бы, чтобы welcomeView прокручивал его.Я посмотрел на этот ответ https://stackoverflow.com/a/43215801/5124961, который в значительной степени подводит итог того, как он выглядит, минус вид, торчащий наверх.Единственная проблема с этим решением состоит в том, что мой collectionView уже имеет заголовок, поэтому добавление welcomeView в качестве подслоя к представлению коллекции добавляет его в уже существующий заголовок, который мне не нужен.

просто используя этот фрагмент кода:

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let offset = collectionView.contentOffset.y
    if(offset > 0){
        self.welcomeView.frame = CGRect(x: 0, y: -offset, width: self.view.bounds.size.width, height: 100)
    }else{
        self.welcomeView.frame = CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: 100)
    }
}

Я получаю этот эффект:

enter image description here

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

1 Ответ

0 голосов
/ 07 декабря 2018

Если я правильно угадаю из вашего снимка, ваше представление приветствия не перекрывает представление сбора.

На основании этого предположения решение будет следующим:

  1. сделать коллекциюview перейдите к верхней части представления вашего контроллера
  2. ваш приветственный вид может перекрывать ваш коллекционный вид
  3. , чтобы избежать того, чтобы приветственный вид перекрывал содержимое вашего коллекционного представления, измените свойство contentInsetпредставление вашей коллекции (contentInset top должно быть равно высоте приветствия).
  4. сохранить ваш фрагмент
  5. индикатор прокрутки, вероятно, исчезнет под видом приветствия.Простое решение - иметь прозрачный фон для приветствия.Благодаря contentInset и вызову делегата вы гарантируете, что нет никакого совпадения между содержимым представления коллекции и представлением приветствия.
...