LayoutSubviews vs layoutIfNeeded (Swift 5)

  Рет қаралды 13,778

SwiftBook

SwiftBook

Күн бұрын

Пікірлер: 20
@vladpodvoiskyi2307
@vladpodvoiskyi2307 5 жыл бұрын
ну а за видео спасибо! Как всегда полезное и понятное!
@samentyevtriboy4731
@samentyevtriboy4731 5 жыл бұрын
Полезное видио 😀 Теперь буду править проект)
@User714-u7t
@User714-u7t 5 жыл бұрын
Огромное спасибо за видео!
@etronik3339
@etronik3339 Жыл бұрын
итоги 16:05 Алексей, Спасибо!
@synevir1603
@synevir1603 5 жыл бұрын
Было бы круто если бы вы сняли курс про то как правильно создавать no storyboard проекты, views & subviews, controllers & childcontrollers, constrains в коде и вообще в целом рассказать про архитектуру вьюх было бы очень интересно. Так же по RxSwift был бы очень интересный курс
@SwiftBook
@SwiftBook 5 жыл бұрын
У нас такие технологии разбираются в курсе VK News Feed App, посмотри
@vladpodvoiskyi2307
@vladpodvoiskyi2307 5 жыл бұрын
13.22-13.44 надо бы рэпом зачитать)))
@АннаОвчинникова-ц2ъ
@АннаОвчинникова-ц2ъ 3 жыл бұрын
Я правильно поняла, что в UIVIew.animate {} когда мы перемещали centerX, то layoutSubviews вызывался автоматически.Но когда в этом блоке увеличивали констрейнт, layoutSubviews сам по себе не вызывался и поэтому мы писали layoutIfNeeded, чтобы косвенно вызвать layoutSubviews (который в свою очередь высчитывает фреймы на основе констрейнтов)Заранее спасибо за ответ, очень важно понять 🙏🏻
@shurale85
@shurale85 Жыл бұрын
все же не раскрыта причина того, что же приводит к вызову метода layoutSubviews на 6 минуте, и изменения констрейнта указанные в этом методе имеют результат. Ведь размеры , констрейнты не менялись. Почему layoutSubviews вызвался?
@SwiftBook
@SwiftBook Жыл бұрын
При появлении VC одним из методов ЖЦ VC будет вызван метод viewDidLoayoutSubViews, который у своего главного view у всех его сабвьюх будет вызывать метод layoutSubviews(), также этот метод ЖЦ (viewDidLoayoutSubViews) будет срабатывать когда меняются размеры главного view VC, например когда устройство будет перевернуто.
@vietho2512
@vietho2512 5 жыл бұрын
1) Нужно ли делать [weak self] в блоке animate? 2) зачем два раза писать layoutifneeded?
@vietho2512
@vietho2512 5 жыл бұрын
Алексей Пархоменко можешь сделать видос когда надо, а когда не надо использовать weak self?
@b0ss1987
@b0ss1987 5 жыл бұрын
Спасибо за видео, как всегда во время, как раз была проблема с этим! Буду очень благодарен если подскажете как сделать что бы collection view отображал картинку в полный размер с правильным соотношением сторон, не зависимо от ориентации самого изображения
@АндрейКозлов-м5с
@АндрейКозлов-м5с 5 жыл бұрын
cornerRadius не сработал во viewDidLoad() потому что в него записали ноль. В тот момент ширина квадрата ещё не была высчитана поэтому frame.width вернул 0. Если бы автор ролика передал туда константное значение, то все бы заработало.
@vadim_polovoi
@vadim_polovoi 2 жыл бұрын
@@АлексейПархоменко-х9ы Алексей, добрый день. На 6:15 было сказано, что после работы LayoutSubviews срабатывает метод ViewDidLayoutSubviews во VC. Но когда я сам решил это проверить и переопределил все методы жизненного цикла VC, чтобы они выводили в консоль своё имя при запуске, то метод LayoutSubviews срабатывал уже после ViewDidLayoutSubviews.
@shurale85
@shurale85 Жыл бұрын
@@vadim_polovoi а вы не разобралсиь, почему на 6 минуте вызвался layoutSubview (и изменения констрейнтов применились).Что было триггером
@vadim_polovoi
@vadim_polovoi Жыл бұрын
@@shurale85 когда мы в данном примере указываем constraints для нашей subview в методе ViewDidLoad, то они применяются для нее не сразу и Frame этой вьюшки соответственно нулевой еще из-за этого. Они гарантированно применятся, когда вызовется метод viewDidLayoutSubviews (это и есть сигнальный метод viewController , который прямо об этом и говорит, что constraints для subviews применились). В данном случае никаких триггеров дополнительных не надо, чтобы запустить этот процесс применения constraints, т.к. указание этих констреинтов в коде и есть сам по себе первоначальный триггер, чтобы была необходимость применить эти ограничения.
@shurale85
@shurale85 Жыл бұрын
@@vadim_polovoi класс, спасибо!
@vladislavwhatislove7156
@vladislavwhatislove7156 2 жыл бұрын
1000 лайков
Google авторизация/sign-in через CocoaPods
15:45
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Жизненный цикл UIViewController (Swift 4)
17:23
SwiftBook
Рет қаралды 21 М.
Child View Controller (Swift 5)
18:46
SwiftBook
Рет қаралды 9 М.
Dependency Injection
15:31
SwiftBook
Рет қаралды 15 М.
Крутая карусель через UICollectionView
26:20
Signature view in ios using Xcode 16 - Swift 6
1:59
Software Development
Рет қаралды 44
KVO Key-Value Observing и KVC Key-Value Coding
16:28
SwiftBook
Рет қаралды 10 М.
Scrolling and Zooming Photos - UIScrollView Tutorial (Swift 5)
33:02
UIView переходы (UIView transitions with Swift 4)
15:11
MVP по SOLID c DI и Unit test на Swift 5 part 1
54:47
The Swift Developers
Рет қаралды 31 М.
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.