Size: a a a

iOS Developers — русскоговорящее сообщество

2020 April 15

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
let kbFrame = keyboardRectangle
let kbFrameInLocal = view.convert(kbFrame, from: view.window)
let overlap = view.frame.inset(by: view.safeAreaInsets).maxY + additionalSafeAreaInsets.bottom - kbFrameInLocal.minY        
additionalSafeAreaInsets.bottom = max(0, overlap)
view.layoutIfNeeded()
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
попробуй вот этот код дописать в обсервер
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
переменная keyboardHeight не имеет смысла, потому что высота клавиатуры при закрытии останется такая же, просто фрейм сместится ниже
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
кроме того, имеет смысл заменить систему координат view.window на систему координат приложения. наверно так будет правильнее
источник

S

Stanislav in iOS Developers — русскоговорящее сообщество
Миронов Борис
Народ, хочу сделать плавное поднятие кнопки, констраинтом прибитой к нижней части экрана вместе с поднятием клавиатуры. Но проблема в том, что высоту клавиатуры я могу узнать только после ее поднятия. Как исправить? Куда копать?
NotificationCenter.default.addObserver(
   self,
   selector: #selector(keyboardWillShow),
   name: UIResponder.keyboardWillShowNotification,
   object: nil
)
@objc func keyboardWillShow(_ notification: Notification) {
   if let keyboardFrame: NSValue = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue {
       let keyboardRectangle = keyboardFrame.cgRectValue
       let keyboardHeight = keyboardRectangle.height
   }
}
Почему только после поднятия, если как раз в твоем коде прописано получение высоты клавиатуры до того, как она начнет показываться?
источник

TS

Takaev Shamil in iOS Developers — русскоговорящее сообщество
Как поменять начальный ViewController. У меня есть VC для ввода логина и пароля и VC для отображения информации о пользователе. Я записываю данные через UserDefaults. И мне надо поменять начальный экран если там есть какие то данные. Кто может направиль в правильную сторону?
источник

V

Vlad in iOS Developers — русскоговорящее сообщество
Takaev Shamil
Как поменять начальный ViewController. У меня есть VC для ввода логина и пароля и VC для отображения информации о пользователе. Я записываю данные через UserDefaults. И мне надо поменять начальный экран если там есть какие то данные. Кто может направиль в правильную сторону?
При запуске приложения проверять, есть ли запись в userdefualts и показывать нужный контроллер
источник

TS

Takaev Shamil in iOS Developers — русскоговорящее сообщество
Вот я не понимаю как показывать нужный контроллер)
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Takaev Shamil
Вот я не понимаю как показывать нужный контроллер)
у главного окна приложения window.rootViewController нужно присвоить свой
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
главное окно можно посмотреть в UIApplication.shared.keyWindow или в свойстве делегата приложения
источник

В

Валентий in iOS Developers — русскоговорящее сообщество
Всем привет, можете подсказать в каком методе вызывается инициализация Container View. (Мне нужно передать параметр в тот VC)
источник

TS

Takaev Shamil in iOS Developers — русскоговорящее сообщество
В основном то что я нашел в гугле говорится примерно то же. В методе application написать self.window.rootViewController = нужный мне. Но проблема в том что self.window у меня отсутствует. Говорит не существует такой переменной
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Andrey Prokhorenko
Все еще пытаюсь решить проблему, и не получается. Буду рад помощи. Продублирую
соре, я не могу придумать ничего лучше как инициализировать одной переменной, а остальные добавлять с помощью метода типа append. Или отказаться от этой структуры, если тебе нужны только данные из элементов то просто мапить их в конечные типы без обертки
источник

AP

Andrey Prokhorenko in iOS Developers — русскоговорящее сообщество
Denis Kim
соре, я не могу придумать ничего лучше как инициализировать одной переменной, а остальные добавлять с помощью метода типа append. Или отказаться от этой структуры, если тебе нужны только данные из элементов то просто мапить их в конечные типы без обертки
Понял, спасибо. Я тоже что-то такое думал. Но надеялся, что я чего-то не знаю и можно как-то по-другому
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Валентий
Всем привет, можете подсказать в каком методе вызывается инициализация Container View. (Мне нужно передать параметр в тот VC)
что еще за контейнер вью
источник

В

Валентий in iOS Developers — русскоговорящее сообщество
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
вся структура вьюшек загружается в методе loadView и доступна в методе viewDidLoad() и далее
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
это такая же сабвьюшка как и все остальные
источник

В

Валентий in iOS Developers — русскоговорящее сообщество
хм, а каким образом я могу передать ей параметр? куда гуглить можете подсказать?
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Takaev Shamil
В основном то что я нашел в гугле говорится примерно то же. В методе application написать self.window.rootViewController = нужный мне. Но проблема в том что self.window у меня отсутствует. Говорит не существует такой переменной
в делегате приложения нужно объявить переменную var window: UIWindow? в соответствии с протоколом делегата, это нормально и xcode за тебя там подставит правильный синтаксис
источник