Каждый раз когда Вы извиняетесь за то, что отнимаете время, я сидя у монитора поговариваю "отнимай, отними все время, подольше бы шел этот ролик". Это не сарказм
Как можно заменить 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...)
У меня твой метод не работает: 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() }
32:14 чтобы не использовать force-unwrap (разворачивание с восклицательным знаком) при создании экземпляра картинки из ассетов можно применить литерал (пример let audi = #imageLiteral(resourceName: "audi")), тогда экземпляр будет иметь тип не UIImage? а UIImage и его не нужно разворачивать
Весьма интересный про то как писать универсальные UIPageViewController, спасибо только есть вопрос про self в self.view.addSubview(view) почему view без self не виден?
Женя сделай пожалуйста мини-обзорчик в ВК или на канале об iMac 27 (я так понимаю это Retina 5k 2017), дело в том что я сам собираюсь потратиться на яблочный комп и пока не могу определится что взять, не хочется ошибиться, т.к. деньги не малые. Хочется узнать твоё мнение о плюсах/минусах. Думаю это многим будет интересно!
За все уроки это первый урок когда практически ничего непонятно, еще и код весь переписывал (с учетом актуализации SceneDelegate), а он и не работает. Даже непонятно в какую сторону копать. Вам в любом случае спасибо за все уроки, но если он объемный лучше наверное разделить на пару частей, чем в впопыхах записывать.
Swift 5.2, XCode 11 В SceneDelegate в методе scene let pageVC = ViewController() let navVC = UINavigationController(rootViewController: pageVC) Работает даже если прописать только это
Крашило в myViewController, пока не изменил required init required init?(coder: NSCoder) { super.init(coder: coder) //fatalError("init(coder:) has not been implemented") }
Каждый раз когда Вы извиняетесь за то, что отнимаете время, я сидя у монитора поговариваю "отнимай, отними все время, подольше бы шел этот ролик". Это не сарказм
Думаю автор бы посоветовал Вам больше это время тратить на практику, чем на просмотр ролика😉
@@Abc_alfavit , тратил на ролики - ни о чем не жалею
@@dmitry3881 устроился разработчиком?
@@JamesMcGregor-hu9ck конечно
@@dmitry3881 миддл уже?)
Огромное спасибо за ваш труд)
Ваши уроки очень помогают)
спасибо и вам
Превосходный урок. Огромное спасибо!
Как можно заменить 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...)
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()
СПасибо тебе, добрый человек!
Урок бомба!
Спасибо большое
В новых версиях 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())
}
Затем в рутовом контроллере меняем цвет фона на белый
Спасибо огромное!)
В новых версиях. Пишем в 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()
}
У меня твой метод не работает:
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()
}
Тут иностранец -- я вообще рад, что знаю русский! Отличный урок! Спасибо огромное.
Будь здоров, человек ты наш добрый!
Лайк не глядя!!
надо еще отзыв после просмотра)
Евгений, Привет. Большое спасибо за твой труд и время.
Очень замудренный код оказался, до этого видео все получалось отлично. В этом же уроке максимально труднодоступно и не понятно, но спасибо за труд.
Человечище!
Спасибо авансом, продолжаем дальше !)
Что то не работает. Value of optional type 'PageViewController?' must be unwrapped to a value of type 'PageViewController'
хорошая подача материала, доступно
Какое сочетание клавишь выравнивает код на 43:31?
control + i
@@bus1ay спасибо
Здравствуйте, могли бы хотя бы показать отдельно как сделать это в сториборде а то вообще не понятно
Супер Лайк. Супер Урок!
Евгений подскажите, как передать данные в arrayCarViewController, если они приходят из сети. Архитектура приложения построена на MVP?
32:14 чтобы не использовать force-unwrap (разворачивание с восклицательным знаком) при создании экземпляра картинки из ассетов можно применить литерал (пример let audi = #imageLiteral(resourceName: "audi")), тогда экземпляр будет иметь тип не UIImage? а UIImage и его не нужно разворачивать
Тогда легко ошибиться если картинка слишком мелкая
Спасибо за совет, возьму на вооружение)
Спасибо)) Я обычно констрэйнты через функции пишу, у меня так быстрее получается.
Весьма интересный про то как писать универсальные UIPageViewController, спасибо
только есть вопрос про self в self.view.addSubview(view)
почему view без self не виден?
потому что селф это местоимение контролера где она лежит
@@theswiftdevelopers1301 Спасибо, теперь понятно
Спасибо!!!
Спасибо за видео! А что за новое устройство, iMac?
p.s. И спасибо за 4к)
да imac 27 дюймов, хорошо вам видно код?
Я себе тоже недавно купил iMac 27. Ну мне видно отлично!)
Кстати в настройках монитора, можно менять масштабированние. Если вдруг другим не будет видно. Ну при записях следующих видео.
Женя сделай пожалуйста мини-обзорчик в ВК или на канале об iMac 27 (я так понимаю это Retina 5k 2017), дело в том что я сам собираюсь потратиться на яблочный комп и пока не могу определится что взять, не хочется ошибиться, т.к. деньги не малые. Хочется узнать твоё мнение о плюсах/минусах. Думаю это многим будет интересно!
мелковато...
Хорош!
пушка бомба
За все уроки это первый урок когда практически ничего непонятно, еще и код весь переписывал (с учетом актуализации SceneDelegate), а он и не работает. Даже непонятно в какую сторону копать. Вам в любом случае спасибо за все уроки, но если он объемный лучше наверное разделить на пару частей, чем в впопыхах записывать.
Есть несколько свободных дней - есть время поучить UIKit у The Swift Developers)
Так, я щяс понял как это работает. В принципе не сложно. Но когда просто повторяешь не видя сразу результат, то немного теряешся
Swift 5.2, XCode 11
В SceneDelegate в методе scene
let pageVC = ViewController()
let navVC = UINavigationController(rootViewController: pageVC)
Работает даже если прописать только это
сложновато нужно разбираться
Видео мелковато конечно, хоть у меня самого 21" )) Те кто смотрит на мелких разрешениях, подкипать будет ))
Смотрю на Air 11', full screen - вообще без проблем, видно отлично
Sergey Bizunov я посмотрел с телефона xD
Не будем вводить себя в заблуждение )) на телефоне без зума ты не смотрел
Крашило в myViewController, пока не изменил required init
required init?(coder: NSCoder) {
super.init(coder: coder)
//fatalError("init(coder:) has not been implemented")
}