Спасибо, очень полезно. Было бы круто если бы еще код прилагался
@big-tech-pro Жыл бұрын
Спасибо за фидбек! В скором времени планируется выложить код в открытый доступ.
@nefest71 Жыл бұрын
Что за container на 19:53, почему у меня нет его у selectedStoryCell?
@НиколайГриня-ю7х Жыл бұрын
Ребята вы молодцы. Код прилагать ненадолго, так как лучше когда пальчики работают с мозгами. Но как вы преподносите это - просто треш. Во первых заставки текста очень быстрые и объяснений очень мало, во вторых вы в промежутке дописываете что-то или не записываете видео . А идея хорошая . У меня в конце этого видео не увидел "container" на 19.52сек . Спасибо за идею
@AndreyDidenko-y2e Жыл бұрын
Видео супер, вопрос почему если я просколю коллекшн и нажму на ячейку то новый контроллер открывается уже не из центра выбранной ячейки а откуда-то справа ? если не скролить все работает отлично)
@big-tech-pro Жыл бұрын
Привет! Спасибо за фидбек) Что касается проблемы, скорее всего, ты забыл добавить сдвиг по оси X при скролле горизонтальной коллекции. Этот оффсет берется из метода scrollViewDidScroll протокола UIScrollViewDelegate. Данный метод добавляется в расширение контроллера, которое соответствует протоколу UICollectionViewDelegateFlowLayout. Ну потому что UICollectionViewDelegateFlowLayout соответствует протоколу UIScrollViewDelegate. Реализация метода выглядит как-то так: func scrollViewDidScroll(_ scrollView: UIScrollView) { self.scrollXOffset = scrollView.contentOffset.x } Этот оффсет сохраняется в переменную контроллера, а затем используется для расчет стартовой точки, откуда будет презентиться стори вью контроллер (Ширина контента коллекции (contentSize.width) много больше ширины экрана. Именно поэтому у тебя контроллер появляется откуда-то справа. Для решения этой проблемы необходимо лишь вычесть из координаты x центра ячейки [координаты центра ячейки считаются относительно content size коллекции] сдвиг от скролла этой коллекции, чтобы точка была всегда в пределах ширины экрана). Расчет координат стартовой точки выглядит следующим образом: private var startingAnimationPoint: CGPoint { ... let x = cellCenterPoint.x - self.scrollXOffset let y = cellCenterPoint.y + navigationBarHeight + navigationBarYOffset return CGPoint( x: x, y: y ) }