172 похожих чатов

Помогите, плиз, выше писал, но пока не удалось решить: UIKit,

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()
}
}
и так для портретной свои, для альбомной - свои констрейнты срабатывают,

а если остановить приложение в альбомной и/или в альбомной запустить, то повернув до портреной для нее не устанавливаются портретные констрейнты.
Уперся - хочу победить) помогите, плиз

14 ответов

52 просмотра

Взгляни справа на size inspector.

Roman-Vakulenko Автор вопроса

кому интересно - отказался от UIDevice.current в пользу хардкода,который помог и теперь всегда нужные констрейнты для нужной ориентации: private func changeConstraints() { let isPortrait = view.frame.size.height > view.frame.size.width NSLayoutConstraint.deactivate(portraitConstraints + landscapeConstraints) isPortrait ? usePortraitConstraints() : useLandscapeConstraints() }

Roman Vakulenko
кому интересно - отказался от UIDevice.current в п...

отказался от кита в пользу свифтюай и теперь вообще кайфую от верстки =)

MG
отказался от кита в пользу свифтюай и теперь вообщ...

Я отказался от свифтюай в пользу кита и теперь вообще кайфую от верстки :)

Никита
Я отказался от свифтюай в пользу кита и теперь воо...

значит ты просто не созрел для реактива. суи намного проще и удобнее, просто нужно понимать методологию

Никита
Я отказался от свифтюай в пользу кита и теперь воо...

Я отказался от верстки и теперь вообще кайфую :)

MG
значит ты просто не созрел для реактива. суи намно...

Я не согласен. Я задолбался всякими хаками делать обычные вещи

MG
м?

а если у тебя мин таргет 13, но ты созрел, что делать?

MG
м?

Ну выглядит так как будто вы залетели на свифтюай с таргетом на 16 иос

Michael
Ну выглядит так как будто вы залетели на свифтюай ...

да ориентируемся от 15. смысл техники эпл в том чтобы она была новой техникой эпл. если вы берете технику эпл прошлых лет то вам не нужна техника эпл. проще брать топовый самсунг каждый год, что будет производительнее. ориентируемся на сегмент аудитории которая может себе позволить новую технику эпл.

MG
да ориентируемся от 15. смысл техники эпл в том чт...

сейчас почти все из финтеха улыбнулись)

Anatoly Qstove
сейчас почти все из финтеха улыбнулись)

мне хватает денег я не гонюсь за маленькой суммой. мы финансируемся из госбюджета саудовской аравии саудиан вижен 2030 с 2026 года. поэтому ориентироваться на ниже 15 смысла нет. до 26 года можно поразвлекаться потестить

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта