LayoutSubviews vs layoutIfNeeded (Swift 5)

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 20

  • @samentyevtriboy4731
    @samentyevtriboy4731 5 років тому +7

    Полезное видио 😀
    Теперь буду править проект)

  • @vladpodvoiskyi2307
    @vladpodvoiskyi2307 5 років тому +4

    ну а за видео спасибо! Как всегда полезное и понятное!

  • @User714-u7t
    @User714-u7t 5 років тому +3

    Огромное спасибо за видео!

  • @etronik3339
    @etronik3339 Рік тому

    итоги 16:05
    Алексей, Спасибо!

  • @synevir1603
    @synevir1603 5 років тому +3

    Было бы круто если бы вы сняли курс про то как правильно создавать no storyboard проекты, views & subviews, controllers & childcontrollers, constrains в коде и вообще в целом рассказать про архитектуру вьюх было бы очень интересно.
    Так же по RxSwift был бы очень интересный курс

    • @SwiftBook
      @SwiftBook  5 років тому

      У нас такие технологии разбираются в курсе VK News Feed App, посмотри

  • @vladpodvoiskyi2307
    @vladpodvoiskyi2307 5 років тому +10

    13.22-13.44 надо бы рэпом зачитать)))

  • @shurale85
    @shurale85 Рік тому

    все же не раскрыта причина того, что же приводит к вызову метода layoutSubviews на 6 минуте, и изменения констрейнта указанные в этом методе имеют результат. Ведь размеры , констрейнты не менялись. Почему layoutSubviews вызвался?

    • @SwiftBook
      @SwiftBook  Рік тому

      При появлении VC одним из методов ЖЦ VC будет вызван метод viewDidLoayoutSubViews, который у своего главного view у всех его сабвьюх будет вызывать метод layoutSubviews(), также этот метод ЖЦ (viewDidLoayoutSubViews) будет срабатывать когда меняются размеры главного view VC, например когда устройство будет перевернуто.

  • @b0ss1987
    @b0ss1987 5 років тому

    Спасибо за видео, как всегда во время, как раз была проблема с этим! Буду очень благодарен если подскажете как сделать что бы collection view отображал картинку в полный размер с правильным соотношением сторон, не зависимо от ориентации самого изображения

  • @vietho2512
    @vietho2512 5 років тому +2

    1) Нужно ли делать [weak self] в блоке animate?
    2) зачем два раза писать layoutifneeded?

    • @vietho2512
      @vietho2512 5 років тому +5

      Алексей Пархоменко можешь сделать видос когда надо, а когда не надо использовать weak self?

  • @АннаОвчинникова-ц2ъ

    Я правильно поняла, что в UIVIew.animate {} когда мы перемещали centerX, то layoutSubviews вызывался автоматически.Но когда в этом блоке увеличивали констрейнт, layoutSubviews сам по себе не вызывался и поэтому мы писали layoutIfNeeded, чтобы косвенно вызвать layoutSubviews (который в свою очередь высчитывает фреймы на основе констрейнтов)Заранее спасибо за ответ, очень важно понять 🙏🏻

  • @АндрейКозлов-м5с
    @АндрейКозлов-м5с 5 років тому +6

    cornerRadius не сработал во viewDidLoad() потому что в него записали ноль. В тот момент ширина квадрата ещё не была высчитана поэтому frame.width вернул 0. Если бы автор ролика передал туда константное значение, то все бы заработало.

    • @vadim_polovoi
      @vadim_polovoi 2 роки тому +1

      @@АлексейПархоменко-х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 лайков