применялись бы свои констрейнты. 
                  
                  
                  Во viewDidLoad вызываю createConstraints()
                  
                  
                  , а во viewWillLayoutSubviews вызываю changeConstraints()
                  
                  
                  
                  
                  
                  func changeConstraints() {
                  
                  
                          if UIDevice.current.orientation.isPortrait {
                  
                  
                              NSLayoutConstraint.deactivate(landscapeConstraints)
                  
                  
                              NSLayoutConstraint.activate(portraitConstraints)
                  
                  
                          } else {
                  
                  
                              NSLayoutConstraint.deactivate(portraitConstraints)
                  
                  
                              NSLayoutConstraint.activate(landscapeConstraints)}
                  
                  
                      }
                  
                  
                  
                  
                  
                  но, именно при ПЕРВОМ запуске на симуляторе, вижу, что к портретной применились альбомные. Перевернув несколько раз в портретной потом становятся нужные констрейнты. 
                  
                  
                  1. почему не срабатывают при первом запуске портретные для портретной ориентации?
                  
                  
                  2. как сделать, чтобы сработали? Спасибо
                  
                  
                
Не стоит завязываться на isPortrait а лучше Size Classes как уже писали выше. Смотреть можно в метод // UITraitEnvironment var traitCollection: UITraitCollection { get } func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) В нем проверять verticalSizeClass и применять уже =) ПОчитать про это можно подробнее в книге Modern Auto Layout там хорошо описано
 Roman
                          Vakulenko
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Roman
                          Vakulenko
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  func changeConstraints(){ if UITraitCollection.current.verticalSizeClass == .regular { NSLayoutConstraint.deactivate(landscapeConstraints) NSLayoutConstraint.activate(portraitConstraints) } else { NSLayoutConstraint.deactivate(portraitConstraints) NSLayoutConstraint.activate(landscapeConstraints) } } вызываю во viewWillLayoutSubviews - не помого (что-то криво сделал?)
Обсуждают сегодня