Size: a a a

2020 August 28

DM

Dmytro Mandych in SwiftBook
Val
то layoutSubviews()
та не я точно помню что сессия 17-18 года вроде, там они 40 мин толкали про правельный лояут, и там именно  setNeedsLayout
источник

Р

Рамазан in SwiftBook
Alim
точняк, layoutSubviews() на родительскую вьюху перед анимацией и заработало, спасибо)
👍
источник

АЗ

Александр Захаров... in SwiftBook
Alim
точняк, layoutSubviews() на родительскую вьюху перед анимацией и заработало, спасибо)
покажи как стало )
источник

V

Val in SwiftBook
Dmytro Mandych
та не я точно помню что сессия 17-18 года вроде, там они 40 мин толкали про правельный лояут, и там именно  setNeedsLayout
чет нигде не написано об этом
источник

A

Alim in SwiftBook
Александр Захаров
покажи как стало )
extension UIView {
   func show() {
       let view = UILabel()
       view.text = "TEST"
       view.backgroundColor = .red
   view.translatesAutoresizingMaskIntoConstraints = false
   
       self.addSubview(view)
       let topConstraint = view.topAnchor.constraint(equalTo: self.topAnchor); topConstraint.isActive = true
       view.heightAnchor.constraint(greaterThanOrEqualToConstant: 50).isActive = true
       view.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 10).isActive = true
       view.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -10).isActive = true

       self.layoutSubviews()

       topConstraint.constant += self.safeAreaInsets.top + 10

       UIView.animate(withDuration: 3, animations: {
           self.layoutIfNeeded()
       })
   }
}
источник

DM

Dmytro Mandych in SwiftBook
Val
чет нигде не написано об этом
источник

G

Georgy in SwiftBook
источник

DM

Dmytro Mandych in SwiftBook
вот видео
источник

V

Val in SwiftBook
Dmytro Mandych
вот видео
не нашел там в субтитрах, что нельзя вызывать setNeedLayout()
источник

V

Val in SwiftBook
И вон выше скинули, что apple наоборот рекомендует вызывать setNeedLayout вместо layoutSubviews
источник

V

Val in SwiftBook
Alim
extension UIView {
   func show() {
       let view = UILabel()
       view.text = "TEST"
       view.backgroundColor = .red
   view.translatesAutoresizingMaskIntoConstraints = false
   
       self.addSubview(view)
       let topConstraint = view.topAnchor.constraint(equalTo: self.topAnchor); topConstraint.isActive = true
       view.heightAnchor.constraint(greaterThanOrEqualToConstant: 50).isActive = true
       view.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 10).isActive = true
       view.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -10).isActive = true

       self.layoutSubviews()

       topConstraint.constant += self.safeAreaInsets.top + 10

       UIView.animate(withDuration: 3, animations: {
           self.layoutIfNeeded()
       })
   }
}
Так а если вместо self.layoutSubviews вызывать setNeedsLayout, то не работает?
источник

A

Alim in SwiftBook
Val
Так а если вместо self.layoutSubviews вызывать setNeedsLayout, то не работает?
self.layoutSubviews() надо до того как менять topConstraint.constant
источник

A

Alim in SwiftBook
и внутри блока анимации тоже layoutSuviews()
источник

V

Val in SwiftBook
Alim
self.layoutSubviews() надо до того как менять topConstraint.constant
ну, до блока анимации вызвать setNeedsLayout и внутри блока layoutIfNeeded
источник

V

Val in SwiftBook
Вот тут пишут, что лучше layoutSubviews не вызывать вообше
источник

ЕУ

Евгений Уланов... in SwiftBook
Переслано от Евгений Уланов...
Добрый день, подскажите в SceneDelegate натроил skip login view, при перезапуске приложения, приложение переходит сразу к UITabbarController'у, вроде все ок, но при нажатии logout приложение не переходит к login view (если приложение не перезапускать, после авторизации кнопка logout работает) как будто не создается unwindSegue. Заранее спасибо за помощь =)
источник

С

Сергей in SwiftBook
Господа, добрый день
можно пояснительную пригаду, пожалуйста

Пример:
let numArray = [1, 4, 10, 15]
let even = numArray.filter{ $0 %2 == 0 }
even // [ 4, 10 ]

Собственно, разве, когда я использую $0 % 2 == 0 - это не значит, что я проверяю только 1 % 2 == 0?
источник

A

Alex in SwiftBook
Сергей
Господа, добрый день
можно пояснительную пригаду, пожалуйста

Пример:
let numArray = [1, 4, 10, 15]
let even = numArray.filter{ $0 %2 == 0 }
even // [ 4, 10 ]

Собственно, разве, когда я использую $0 % 2 == 0 - это не значит, что я проверяю только 1 % 2 == 0?
Нет, ты перебираешь каждый элемент массива
источник

С

Сергей in SwiftBook
$0 этим я обозначаю с какого элемента начинаем перебор?
источник

A

Alex in SwiftBook
$0 - это значение, которое передается через кложур
источник