layout, хочу, чтобы на портретную и альбомную применялись бы свои констрейнты.
Во 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. как сделать, чтобы сработали? Спасибо
После потыкался и вот так работает:
во viewDidLoad вызываю createPortraitConstraints(),
а во viewWillLayoutSubviews() -
private func changeConstraints() {
if UIDevice.current.orientation.isPortrait {
NSLayoutConstraint.deactivate(landscapeConstraints)
usePortraitConstraints()
} else if UIDevice.current.orientation.isLandscape {
// NSLayoutConstraint.deactivate(portraitConstraints)
useLandscapeConstraints()
}
}
и так для портретной свои, для альбомной - свои констрейнты срабатывают,
а если остановить приложение в альбомной и/или в альбомной запустить, то повернув до портреной для нее не устанавливаются портретные констрейнты.
Уперся - хочу победить) помогите, плиз
Взгляни справа на size inspector.
кому интересно - отказался от UIDevice.current в пользу хардкода,который помог и теперь всегда нужные констрейнты для нужной ориентации: private func changeConstraints() { let isPortrait = view.frame.size.height > view.frame.size.width NSLayoutConstraint.deactivate(portraitConstraints + landscapeConstraints) isPortrait ? usePortraitConstraints() : useLandscapeConstraints() }
отказался от кита в пользу свифтюай и теперь вообще кайфую от верстки =)
Я отказался от свифтюай в пользу кита и теперь вообще кайфую от верстки :)
значит ты просто не созрел для реактива. суи намного проще и удобнее, просто нужно понимать методологию
Я отказался от верстки и теперь вообще кайфую :)
Очень спорное заявление
Я не согласен. Я задолбался всякими хаками делать обычные вещи
а если у тебя мин таргет 13, но ты созрел, что делать?
да ориентируемся от 15. смысл техники эпл в том чтобы она была новой техникой эпл. если вы берете технику эпл прошлых лет то вам не нужна техника эпл. проще брать топовый самсунг каждый год, что будет производительнее. ориентируемся на сегмент аудитории которая может себе позволить новую технику эпл.
сейчас почти все из финтеха улыбнулись)
мне хватает денег я не гонюсь за маленькой суммой. мы финансируемся из госбюджета саудовской аравии саудиан вижен 2030 с 2026 года. поэтому ориентироваться на ниже 15 смысла нет. до 26 года можно поразвлекаться потестить
Обсуждают сегодня