Custom UIViewController Transitions | Swift, Xcode, UIViewControllerTransitioningDelegate

  Рет қаралды 714

BigTech

BigTech

Күн бұрын

Пікірлер: 7
@vitkor1526
@vitkor1526 Жыл бұрын
Спасибо, очень полезно. Было бы круто если бы еще код прилагался
@big-tech-pro
@big-tech-pro Жыл бұрын
Спасибо за фидбек! В скором времени планируется выложить код в открытый доступ.
@nefest71
@nefest71 Жыл бұрын
Что за container на 19:53, почему у меня нет его у selectedStoryCell?
@НиколайГриня-ю7х
@НиколайГриня-ю7х Жыл бұрын
Ребята вы молодцы. Код прилагать ненадолго, так как лучше когда пальчики работают с мозгами. Но как вы преподносите это - просто треш. Во первых заставки текста очень быстрые и объяснений очень мало, во вторых вы в промежутке дописываете что-то или не записываете видео . А идея хорошая . У меня в конце этого видео не увидел "container" на 19.52сек . Спасибо за идею
@AndreyDidenko-y2e
@AndreyDidenko-y2e Жыл бұрын
Видео супер, вопрос почему если я просколю коллекшн и нажму на ячейку то новый контроллер открывается уже не из центра выбранной ячейки а откуда-то справа ? если не скролить все работает отлично)
@big-tech-pro
@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 ) }
@AndreyDidenko-y2e
@AndreyDidenko-y2e Жыл бұрын
@@big-tech-pro Большое спасибо! буду исправлять!
Auto Layout | Swift, Xcode, UICollectionView
25:54
BigTech
Рет қаралды 199
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 18 МЛН
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 41 МЛН
Farmer narrowly escapes tiger attack
00:20
CTV News
Рет қаралды 13 МЛН
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 139 МЛН
Путин ответил на угрозы Трампа
7:21
Diplomatrutube
Рет қаралды 2,6 МЛН
Closure & Delegate | Swift, Xcode
12:01
BigTech
Рет қаралды 322
Custom ViewController Transitions in UIKit using Swift
20:27
UISheetPresentationController iOS 15 Swift #1
12:45
iOS Shiga
Рет қаралды 1,2 М.
Xcode - Radio Buttons - Developing a Currency Converter  Part 1
16:30
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 18 МЛН