Swift 4 c нуля: UIKit урок 20 - UIPageViewController+lazy+Constraints/programmatically

Поділитися
Вставка
  • Опубліковано 4 січ 2025

КОМЕНТАРІ • 60

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

    Каждый раз когда Вы извиняетесь за то, что отнимаете время, я сидя у монитора поговариваю "отнимай, отними все время, подольше бы шел этот ролик". Это не сарказм

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

      Думаю автор бы посоветовал Вам больше это время тратить на практику, чем на просмотр ролика😉

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

      @@Abc_alfavit , тратил на ролики - ни о чем не жалею

    • @JamesMcGregor-hu9ck
      @JamesMcGregor-hu9ck Рік тому

      @@dmitry3881 устроился разработчиком?

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

      @@JamesMcGregor-hu9ck конечно

    • @JamesMcGregor-hu9ck
      @JamesMcGregor-hu9ck Рік тому

      @@dmitry3881 миддл уже?)

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

    Огромное спасибо за ваш труд)
    Ваши уроки очень помогают)

  • @ИгорьТимофеев-г3ш
    @ИгорьТимофеев-г3ш 2 роки тому +2

    Превосходный урок. Огромное спасибо!

  • @just_SmK
    @just_SmK Рік тому +1

    Как можно заменить Constraints, чтобы они выглядели чуть менее "страшно"
    NSLayoutConstraint.activate([
    carImageView.heightAnchor.constraint(equalToConstant: 250),
    carImageView.widthAnchor.constraint(equalToConstant: 250),
    carImageView.topAnchor.constraint(equalTo: view.topAnchor, constant: 150),
    carImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor)
    ])
    NSLayoutConstraint.activate([
    nameLabel.topAnchor.constraint(equalTo: carImageView.bottomAnchor, constant: 50),
    nameLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor)
    ])
    Это полный эквивалент тому, что было написано отдельным конструктором для каждого NSLayoutConstraint(item: Any, attribute...)

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

    Xcode 11
    пишем в SceneDelegate в методе scene
    guard let windowScene = (scene as? UIWindowScene) else { return }
    self.window = UIWindow(frame: UIScreen.main.bounds)
    self.window?.windowScene = windowScene
    window?.rootViewController = UINavigationController(rootViewController: MyPageViewController())
    window?.backgroundColor = .white
    window?.makeKeyAndVisible()

    • @myga77
      @myga77 2 роки тому

      СПасибо тебе, добрый человек!

  • @itananas
    @itananas 2 роки тому +3

    Урок бомба!
    Спасибо большое

  • @exey.artwork
    @exey.artwork 4 роки тому +6

    В новых версиях xcode в SceneDelegate:
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let winScene = (scene as? UIWindowScene) else { return }
    window = UIWindow(windowScene: winScene)
    window?.makeKeyAndVisible()
    window?.rootViewController = UINavigationController(rootViewController: PageViewController())
    }
    Затем в рутовом контроллере меняем цвет фона на белый

  • @ПолинаБеловодская-щ6н

    В новых версиях. Пишем в SceneDelegate:
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let _ = (scene as? UIWindowScene) else { return }
    let vc = MyViewController()
    let navController = UINavigationController(rootViewController: vc)
    self.window?.rootViewController = navController
    self.window?.backgroundColor = UIColor.white
    self.window?.makeKeyAndVisible()
    }

    • @Abc_alfavit
      @Abc_alfavit Рік тому +3

      У меня твой метод не работает:
      guard let _ = (scene as? UIWindowScene) else { return }
      let window = UIWindow(frame: UIScreen.main.bounds)
      window.backgroundColor = .white
      window.rootViewController = UINavigationController(rootViewController: MyPageViewController())
      window.makeKeyAndVisible()
      Как только изменил на такой код, приложение заработало:
      if let windowScene = scene as? UIWindowScene {
      let window = UIWindow(windowScene: windowScene)
      self.window = window
      window.backgroundColor = .black
      window.rootViewController = UINavigationController(rootViewController: MyPageViewController())
      window.makeKeyAndVisible()
      }

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

    Тут иностранец -- я вообще рад, что знаю русский! Отличный урок! Спасибо огромное.

  • @edwardx4743
    @edwardx4743 3 роки тому

    Будь здоров, человек ты наш добрый!

  • @TheKonan78
    @TheKonan78 7 років тому +9

    Лайк не глядя!!

  • @ИгорьЧумиков-й5б
    @ИгорьЧумиков-й5б 4 роки тому

    Евгений, Привет. Большое спасибо за твой труд и время.

  • @vvosmoj
    @vvosmoj 2 роки тому +2

    Очень замудренный код оказался, до этого видео все получалось отлично. В этом же уроке максимально труднодоступно и не понятно, но спасибо за труд.

  • @edwardj7176
    @edwardj7176 3 роки тому +1

    Человечище!

  • @leshaaleshaaa
    @leshaaleshaaa 4 роки тому

    Спасибо авансом, продолжаем дальше !)

  • @ДмитрийМорозов-ч9т

    Что то не работает. Value of optional type 'PageViewController?' must be unwrapped to a value of type 'PageViewController'

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

    хорошая подача материала, доступно

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

    Какое сочетание клавишь выравнивает код на 43:31?

  • @timis2501
    @timis2501 4 роки тому +2

    Здравствуйте, могли бы хотя бы показать отдельно как сделать это в сториборде а то вообще не понятно

  • @MegaDigri
    @MegaDigri 7 років тому

    Супер Лайк. Супер Урок!

  • @ВячеславЛарин-м6х
    @ВячеславЛарин-м6х 4 роки тому

    Евгений подскажите, как передать данные в arrayCarViewController, если они приходят из сети. Архитектура приложения построена на MVP?

  • @sergeybizunov6387
    @sergeybizunov6387 7 років тому +2

    32:14 чтобы не использовать force-unwrap (разворачивание с восклицательным знаком) при создании экземпляра картинки из ассетов можно применить литерал (пример let audi = #imageLiteral(resourceName: "audi")), тогда экземпляр будет иметь тип не UIImage? а UIImage и его не нужно разворачивать

    • @VictorKushnerov
      @VictorKushnerov 6 років тому

      Тогда легко ошибиться если картинка слишком мелкая

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

      Спасибо за совет, возьму на вооружение)

  • @barche75
    @barche75 7 років тому

    Спасибо)) Я обычно констрэйнты через функции пишу, у меня так быстрее получается.

  • @VictorKushnerov
    @VictorKushnerov 6 років тому

    Весьма интересный про то как писать универсальные UIPageViewController, спасибо
    только есть вопрос про self в self.view.addSubview(view)
    почему view без self не виден?

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  6 років тому

      потому что селф это местоимение контролера где она лежит

    • @VictorKushnerov
      @VictorKushnerov 6 років тому

      ​@@theswiftdevelopers1301 Спасибо, теперь понятно

  • @Миша-е4д9ы
    @Миша-е4д9ы 5 років тому

    Спасибо!!!

  • @appkit1551
    @appkit1551 7 років тому +2

    Спасибо за видео! А что за новое устройство, iMac?
    p.s. И спасибо за 4к)

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  7 років тому

      да imac 27 дюймов, хорошо вам видно код?

    • @appkit1551
      @appkit1551 7 років тому

      Я себе тоже недавно купил iMac 27. Ну мне видно отлично!)

    • @appkit1551
      @appkit1551 7 років тому

      Кстати в настройках монитора, можно менять масштабированние. Если вдруг другим не будет видно. Ну при записях следующих видео.

    • @sergeybizunov6387
      @sergeybizunov6387 7 років тому

      Женя сделай пожалуйста мини-обзорчик в ВК или на канале об iMac 27 (я так понимаю это Retina 5k 2017), дело в том что я сам собираюсь потратиться на яблочный комп и пока не могу определится что взять, не хочется ошибиться, т.к. деньги не малые. Хочется узнать твоё мнение о плюсах/минусах. Думаю это многим будет интересно!

    • @НиколайМ-и5щ
      @НиколайМ-и5щ 6 років тому

      мелковато...

  • @yuriipetrov1593
    @yuriipetrov1593 6 років тому

    Хорош!

  • @ЕвгенийСычёв-п8у
    @ЕвгенийСычёв-п8у 6 років тому

    пушка бомба

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

    За все уроки это первый урок когда практически ничего непонятно, еще и код весь переписывал (с учетом актуализации SceneDelegate), а он и не работает. Даже непонятно в какую сторону копать. Вам в любом случае спасибо за все уроки, но если он объемный лучше наверное разделить на пару частей, чем в впопыхах записывать.

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

    Есть несколько свободных дней - есть время поучить UIKit у The Swift Developers)

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

      Так, я щяс понял как это работает. В принципе не сложно. Но когда просто повторяешь не видя сразу результат, то немного теряешся

  • @ДенисВальщиков-я6н

    Swift 5.2, XCode 11
    В SceneDelegate в методе scene
    let pageVC = ViewController()
    let navVC = UINavigationController(rootViewController: pageVC)
    Работает даже если прописать только это

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

    сложновато нужно разбираться

  • @sergeybizunov6387
    @sergeybizunov6387 7 років тому

    Видео мелковато конечно, хоть у меня самого 21" )) Те кто смотрит на мелких разрешениях, подкипать будет ))

    • @sergeyyakimenko2874
      @sergeyyakimenko2874 7 років тому

      Смотрю на Air 11', full screen - вообще без проблем, видно отлично

    • @yuriipetrov1593
      @yuriipetrov1593 6 років тому

      Sergey Bizunov я посмотрел с телефона xD

    • @sergeybizunov6387
      @sergeybizunov6387 6 років тому

      Не будем вводить себя в заблуждение )) на телефоне без зума ты не смотрел

  • @FredericoDelBidzho
    @FredericoDelBidzho 4 місяці тому

    Крашило в myViewController, пока не изменил required init
    required init?(coder: NSCoder) {
    super.init(coder: coder)
    //fatalError("init(coder:) has not been implemented")
    }